summaryrefslogtreecommitdiff
path: root/checklink/Asm_printers.ml
blob: 39108be51bf03da3ea126b4ddecce1ee06a3f4ae (plain)
ofshex dumpascii
0000 42 69 74 73 74 72 69 6e 67 5f 75 74 69 6c 73 2e 6d 6c 00 00 00 00 00 00 00 00 00 00 00 00 00 00 Bitstring_utils.ml..............
0020 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0040 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0060 00 00 00 00 30 30 30 36 34 34 20 00 30 30 30 37 36 35 20 00 30 30 30 30 32 34 20 00 30 30 30 30 ....000644..000765..000024..0000
0080 30 30 30 31 34 31 33 20 31 31 37 33 37 30 35 37 34 30 33 20 30 31 35 35 35 31 00 20 30 00 00 00 0001413.11737057403.015551..0...
00a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
00c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
00e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0100 00 75 73 74 61 72 00 30 30 73 61 6e 64 72 69 6e 65 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 .ustar.00sandrine...............
0120 00 00 00 00 00 00 00 00 00 73 74 61 66 66 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 .........staff..................
0140 00 00 00 00 00 00 00 00 00 30 30 30 30 30 30 20 00 30 30 30 30 30 30 20 00 00 00 00 00 00 00 00 .........000000..000000.........
0160 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0180 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
01a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
01c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
01e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0200 28 2a 2a 20 4e 6f 74 65 20 74 68 61 74 20 61 20 62 69 74 73 74 72 69 6e 67 20 69 73 20 61 20 74 (**.Note.that.a.bitstring.is.a.t
0220 72 69 70 6c 65 20 28 73 74 72 69 6e 67 20 2a 20 69 6e 74 20 2a 20 69 6e 74 29 2c 20 77 68 65 72 riple.(string.*.int.*.int),.wher
0240 65 20 74 68 65 20 73 74 72 69 6e 67 0a 20 20 20 20 63 6f 6e 74 61 69 6e 73 20 74 68 65 20 63 6f e.the.string.....contains.the.co
0260 6e 74 65 6e 74 73 20 28 74 68 65 20 6c 61 73 74 20 63 68 61 72 20 69 73 20 66 69 6c 6c 65 64 20 ntents.(the.last.char.is.filled.
0280 75 70 20 77 69 74 68 20 7a 65 72 6f 73 20 69 66 20 6e 65 63 65 73 73 61 72 79 29 2c 0a 20 20 20 up.with.zeros.if.necessary),....
02a0 20 74 68 65 20 66 69 72 74 73 20 69 6e 74 20 67 69 76 65 73 20 74 68 65 20 66 69 72 73 74 20 62 .the.firts.int.gives.the.first.b
02c0 69 74 20 74 6f 20 63 6f 6e 73 69 64 65 72 2c 20 61 6e 64 20 74 68 65 20 73 65 63 6f 6e 64 20 69 it.to.consider,.and.the.second.i
02e0 6e 74 20 67 69 76 65 73 20 74 68 65 0a 20 20 20 20 62 69 74 20 6c 65 6e 67 74 68 20 6f 66 20 74 nt.gives.the.....bit.length.of.t
0300 68 65 20 63 6f 6e 73 69 64 65 72 65 64 20 62 69 74 73 74 72 69 6e 67 2e 0a 2a 29 0a 74 79 70 65 he.considered.bitstring..*).type
0320 20 62 69 74 73 74 72 69 6e 67 20 3d 20 42 69 74 73 74 72 69 6e 67 2e 62 69 74 73 74 72 69 6e 67 .bitstring.=.Bitstring.bitstring
0340 0a 0a 28 2a 2a 20 43 68 65 63 6b 73 20 77 68 65 74 68 65 72 20 61 20 67 69 76 65 6e 20 6e 75 6d ..(**.Checks.whether.a.given.num
0360 62 65 72 20 6f 66 20 62 69 74 73 20 6f 66 20 61 20 62 69 74 73 74 72 69 6e 67 20 61 72 65 20 7a ber.of.bits.of.a.bitstring.are.z
0380 65 72 6f 65 64 2e 20 54 68 65 0a 20 20 20 20 62 69 74 73 74 72 69 6e 67 20 6d 61 79 20 62 65 20 eroed..The.....bitstring.may.be.
03a0 6c 6f 6e 67 65 72 2e 0a 20 20 20 20 40 70 61 72 61 6d 20 73 69 7a 65 20 6e 75 6d 62 65 72 20 6f longer......@param.size.number.o
03c0 66 20 62 69 74 73 20 74 6f 20 63 68 65 63 6b 0a 2a 29 0a 6c 65 74 20 72 65 63 20 69 73 5f 7a 65 f.bits.to.check.*).let.rec.is_ze
03e0 72 6f 73 20 28 62 73 3a 20 62 69 74 73 74 72 69 6e 67 29 20 28 73 69 7a 65 3a 20 69 6e 74 29 3a ros.(bs:.bitstring).(size:.int):
0400 20 62 6f 6f 6c 20 3d 0a 20 20 73 69 7a 65 20 3d 20 30 20 7c 7c 0a 20 20 69 66 20 73 69 7a 65 20 .bool.=...size.=.0.||...if.size.
0420 3e 3d 20 36 34 0a 20 20 74 68 65 6e 20 28 0a 20 20 20 20 62 69 74 6d 61 74 63 68 20 62 73 20 77 >=.64...then.(.....bitmatch.bs.w
0440 69 74 68 0a 20 20 20 20 7c 20 7b 20 30 4c 20 3a 20 36 34 20 3a 20 69 6e 74 20 3b 20 72 65 73 74 ith.....|.{.0L.:.64.:.int.;.rest
0460 20 3a 20 2d 31 20 3a 20 62 69 74 73 74 72 69 6e 67 20 7d 20 2d 3e 0a 20 20 20 20 20 20 20 20 69 .:.-1.:.bitstring.}.->.........i
0480 73 5f 7a 65 72 6f 73 20 72 65 73 74 20 28 73 69 7a 65 20 2d 20 36 34 29 0a 20 20 20 20 7c 20 7b s_zeros.rest.(size.-.64).....|.{
04a0 20 5f 20 7d 20 2d 3e 20 66 61 6c 73 65 0a 20 20 29 0a 20 20 65 6c 73 65 20 28 0a 20 20 20 20 62 ._.}.->.false...)...else.(.....b
04c0 69 74 6d 61 74 63 68 20 62 73 20 77 69 74 68 0a 20 20 20 20 7c 20 7b 20 30 4c 20 3a 20 73 69 7a itmatch.bs.with.....|.{.0L.:.siz
04e0 65 20 3a 20 69 6e 74 20 7d 20 2d 3e 20 74 72 75 65 0a 20 20 20 20 7c 20 7b 20 5f 20 7d 20 2d 3e e.:.int.}.->.true.....|.{._.}.->
0500 20 66 61 6c 73 65 0a 20 20 29 0a 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 .false...)......................
0520 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0540 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0560 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0580 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
05a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
05c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
05e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0600 43 68 65 63 6b 2e 6d 6c 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 Check.ml........................
0620 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0640 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0660 00 00 00 00 30 30 30 36 34 34 20 00 30 30 30 37 36 35 20 00 30 30 30 30 32 34 20 00 30 30 30 30 ....000644..000765..000024..0000
0680 30 33 31 33 37 31 35 20 31 31 37 33 37 30 35 37 34 30 33 20 30 31 33 34 31 34 00 20 30 00 00 00 0313715.11737057403.013414..0...
06a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
06c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
06e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0700 00 75 73 74 61 72 00 30 30 73 61 6e 64 72 69 6e 65 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 .ustar.00sandrine...............
0720 00 00 00 00 00 00 00 00 00 73 74 61 66 66 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 .........staff..................
0740 00 00 00 00 00 00 00 00 00 30 30 30 30 30 30 20 00 30 30 30 30 30 30 20 00 00 00 00 00 00 00 00 .........000000..000000.........
0760 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0780 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
07a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
07c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
07e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0800 6f 70 65 6e 20 41 73 6d 0a 6f 70 65 6e 20 41 73 6d 5f 70 72 69 6e 74 65 72 73 0a 6f 70 65 6e 20 open.Asm.open.Asm_printers.open.
0820 41 53 54 0a 6f 70 65 6e 20 42 69 6e 49 6e 74 0a 6f 70 65 6e 20 42 69 6e 50 6f 73 0a 6f 70 65 6e AST.open.BinInt.open.BinPos.open
0840 20 42 69 74 73 74 72 69 6e 67 5f 75 74 69 6c 73 0a 6f 70 65 6e 20 43 32 43 0a 6f 70 65 6e 20 45 .Bitstring_utils.open.C2C.open.E
0860 4c 46 5f 70 61 72 73 65 72 73 0a 6f 70 65 6e 20 45 4c 46 5f 70 72 69 6e 74 65 72 73 0a 6f 70 65 LF_parsers.open.ELF_printers.ope
0880 6e 20 45 4c 46 5f 74 79 70 65 73 0a 6f 70 65 6e 20 45 4c 46 5f 75 74 69 6c 73 0a 6f 70 65 6e 20 n.ELF_types.open.ELF_utils.open.
08a0 46 72 61 6d 65 77 6f 72 6b 73 0a 6f 70 65 6e 20 4c 65 6e 73 0a 6f 70 65 6e 20 4c 69 62 72 61 72 Frameworks.open.Lens.open.Librar
08c0 79 0a 6f 70 65 6e 20 50 50 43 5f 70 61 72 73 65 72 73 0a 6f 70 65 6e 20 50 50 43 5f 70 72 69 6e y.open.PPC_parsers.open.PPC_prin
08e0 74 65 72 73 0a 6f 70 65 6e 20 50 50 43 5f 74 79 70 65 73 0a 6f 70 65 6e 20 50 50 43 5f 75 74 69 ters.open.PPC_types.open.PPC_uti
0900 6c 73 0a 6f 70 65 6e 20 53 65 63 74 69 6f 6e 73 0a 0a 28 2a 2a 20 45 6e 61 62 6c 65 73 20 69 6d ls.open.Sections..(**.Enables.im
0920 6d 65 64 69 61 74 65 20 70 72 69 6e 74 69 6e 67 20 6f 66 20 6c 6f 67 20 69 6e 66 6f 72 6d 61 74 mediate.printing.of.log.informat
0940 69 6f 6e 20 74 6f 20 73 74 64 6f 75 74 2e 0a 20 20 20 20 57 61 72 6e 69 6e 67 3a 20 77 69 6c 6c ion.to.stdout......Warning:.will
0960 20 70 72 69 6e 74 20 6f 75 74 20 65 76 65 72 79 74 68 69 6e 67 20 65 76 65 6e 20 77 68 65 6e 20 .print.out.everything.even.when.
0980 62 61 63 6b 74 72 61 63 6b 69 6e 67 2e 0a 2a 29 0a 6c 65 74 20 64 65 62 75 67 20 3d 20 72 65 66 backtracking..*).let.debug.=.ref
09a0 20 66 61 6c 73 65 0a 0a 28 2a 2a 20 57 68 65 74 68 65 72 20 74 6f 20 70 72 69 6e 74 20 74 68 65 .false..(**.Whether.to.print.the
09c0 20 45 4c 46 20 6d 61 70 20 2a 29 0a 6c 65 74 20 70 72 69 6e 74 5f 65 6c 66 6d 61 70 20 3d 20 72 .ELF.map.*).let.print_elfmap.=.r
09e0 65 66 20 66 61 6c 73 65 0a 0a 28 2a 2a 20 57 68 65 74 68 65 72 20 74 6f 20 64 75 6d 70 20 74 68 ef.false..(**.Whether.to.dump.th
0a00 65 20 45 4c 46 20 6d 61 70 20 2a 29 0a 6c 65 74 20 64 75 6d 70 5f 65 6c 66 6d 61 70 20 3d 20 72 e.ELF.map.*).let.dump_elfmap.=.r
0a20 65 66 20 66 61 6c 73 65 0a 0a 28 2a 2a 20 57 68 65 74 68 65 72 20 74 6f 20 63 68 65 63 6b 20 74 ef.false..(**.Whether.to.check.t
0a40 68 61 74 20 61 6c 6c 20 45 4c 46 20 66 75 6e 63 74 69 6f 6e 2f 64 61 74 61 20 73 79 6d 62 6f 6c hat.all.ELF.function/data.symbol
0a60 73 20 68 61 76 65 20 62 65 65 6e 20 6d 61 74 63 68 65 64 0a 20 20 20 20 61 67 61 69 6e 73 74 20 s.have.been.matched.....against.
0a80 43 6f 6d 70 43 65 72 74 20 69 64 65 6e 74 73 20 2a 29 0a 6c 65 74 20 65 78 68 61 75 73 74 69 76 CompCert.idents.*).let.exhaustiv
0aa0 69 74 79 20 3d 20 72 65 66 20 74 72 75 65 0a 0a 28 2a 2a 20 43 6f 6d 70 43 65 72 74 20 41 73 6d ity.=.ref.true..(**.CompCert.Asm
0ac0 20 2a 29 0a 74 79 70 65 20 63 63 6f 64 65 20 3d 20 41 73 6d 2e 69 6e 73 74 72 75 63 74 69 6f 6e .*).type.ccode.=.Asm.instruction
0ae0 20 6c 69 73 74 0a 0a 28 2a 2a 20 41 64 64 73 20 61 20 6c 6f 67 20 65 6e 74 72 79 20 69 6e 74 6f .list..(**.Adds.a.log.entry.into
0b00 20 74 68 65 20 66 72 61 6d 65 77 6f 72 6b 2e 20 2a 29 0a 6c 65 74 20 61 64 64 5f 6c 6f 67 20 28 .the.framework..*).let.add_log.(
0b20 65 6e 74 72 79 3a 20 6c 6f 67 5f 65 6e 74 72 79 29 20 28 65 66 77 3a 20 65 5f 66 72 61 6d 65 77 entry:.log_entry).(efw:.e_framew
0b40 6f 72 6b 29 3a 20 65 5f 66 72 61 6d 65 77 6f 72 6b 20 3d 0a 20 20 69 66 20 21 64 65 62 75 67 20 ork):.e_framework.=...if.!debug.
0b60 74 68 65 6e 20 70 72 69 6e 74 5f 65 6e 64 6c 69 6e 65 20 28 73 74 72 69 6e 67 5f 6f 66 5f 6c 6f then.print_endline.(string_of_lo
0b80 67 5f 65 6e 74 72 79 20 74 72 75 65 20 65 6e 74 72 79 29 3b 0a 20 20 7b 65 66 77 20 77 69 74 68 g_entry.true.entry);...{efw.with
0ba0 20 6c 6f 67 20 3d 20 65 6e 74 72 79 20 3a 3a 20 65 66 77 2e 6c 6f 67 7d 0a 0a 28 2a 2a 20 5b 66 .log.=.entry.::.efw.log}..(**.[f
0bc0 6c 61 67 5d 20 73 68 6f 75 6c 64 20 68 61 76 65 20 6f 6e 6c 79 20 6f 6e 65 20 62 69 74 20 73 65 lag].should.have.only.one.bit.se
0be0 74 2e 20 2a 29 0a 6c 65 74 20 69 73 5f 73 65 74 5f 66 6c 61 67 20 28 66 6c 61 67 3a 20 69 6e 74 t..*).let.is_set_flag.(flag:.int
0c00 33 32 29 20 28 62 69 74 73 65 74 3a 20 69 6e 74 33 32 29 3a 20 62 6f 6f 6c 20 3d 0a 20 20 49 6e 32).(bitset:.int32):.bool.=...In
0c20 74 33 32 2e 6c 6f 67 61 6e 64 20 62 69 74 73 65 74 20 66 6c 61 67 20 3c 3e 20 30 6c 0a 0a 28 2a t32.logand.bitset.flag.<>.0l..(*
0c40 2a 20 43 68 65 63 6b 73 20 74 68 61 74 20 5b 61 74 6f 6d 5d 27 73 20 62 69 6e 64 69 6e 67 20 6d *.Checks.that.[atom]'s.binding.m
0c60 61 74 63 68 65 73 20 5b 73 79 6d 5d 27 73 2e 20 2a 29 0a 6c 65 74 20 63 68 65 63 6b 5f 73 74 5f atches.[sym]'s..*).let.check_st_
0c80 62 69 6e 64 20 61 74 6f 6d 20 28 73 79 6d 3a 20 65 6c 66 33 32 5f 73 79 6d 29 3a 20 73 5f 66 72 bind.atom.(sym:.elf32_sym):.s_fr
0ca0 61 6d 65 77 6f 72 6b 20 2d 3e 20 73 5f 66 72 61 6d 65 77 6f 72 6b 20 3d 0a 20 20 6c 65 74 20 73 amework.->.s_framework.=...let.s
0cc0 74 61 74 69 63 20 3d 20 61 74 6f 6d 2e 61 5f 73 74 6f 72 61 67 65 20 3d 20 43 2e 53 74 6f 72 61 tatic.=.atom.a_storage.=.C.Stora
0ce0 67 65 5f 73 74 61 74 69 63 20 7c 7c 20 61 74 6f 6d 2e 61 5f 69 6e 6c 69 6e 65 20 69 6e 0a 20 20 ge_static.||.atom.a_inline.in...
0d00 6d 61 74 63 68 20 73 74 61 74 69 63 2c 20 73 79 6d 2e 73 74 5f 62 69 6e 64 20 77 69 74 68 0a 20 match.static,.sym.st_bind.with..
0d20 20 7c 20 74 72 75 65 2c 20 53 54 42 5f 4c 4f 43 41 4c 20 2d 3e 20 69 64 0a 20 20 7c 20 66 61 6c .|.true,.STB_LOCAL.->.id...|.fal
0d40 73 65 2c 20 53 54 42 5f 47 4c 4f 42 41 4c 20 2d 3e 20 69 64 0a 20 20 7c 20 5f 20 2d 3e 20 28 0a se,.STB_GLOBAL.->.id...|._.->.(.
0d60 20 20 20 20 73 66 5f 65 66 20 5e 25 3d 0a 20 20 20 20 20 20 61 64 64 5f 6c 6f 67 20 28 45 52 52 ....sf_ef.^%=.......add_log.(ERR
0d80 4f 52 28 0a 20 20 20 20 20 20 20 20 22 53 79 6d 62 6f 6c 3a 20 22 20 5e 20 73 79 6d 2e 73 74 5f OR(........."Symbol:.".^.sym.st_
0da0 6e 61 6d 65 20 5e 20 22 20 68 61 73 20 61 20 77 72 6f 6e 67 20 62 69 6e 64 69 6e 67 20 28 6c 6f name.^.".has.a.wrong.binding.(lo
0dc0 63 61 6c 20 76 73 2e 20 67 6c 6f 62 61 6c 29 22 0a 20 20 20 20 20 20 29 29 0a 20 20 29 0a 0a 28 cal.vs..global)".......))...)..(
0de0 2a 2a 20 54 61 6b 65 6e 20 66 72 6f 6d 20 43 6f 6d 70 43 65 72 74 20 2a 29 0a 6c 65 74 20 6e 61 **.Taken.from.CompCert.*).let.na
0e00 6d 65 5f 6f 66 5f 73 65 63 74 69 6f 6e 5f 4c 69 6e 75 78 3a 0a 20 20 20 20 73 65 63 74 69 6f 6e me_of_section_Linux:.....section
0e20 5f 6e 61 6d 65 20 2d 3e 20 73 74 72 69 6e 67 0a 20 20 3d 20 66 75 6e 63 74 69 6f 6e 0a 20 20 7c _name.->.string...=.function...|
0e40 20 53 65 63 74 69 6f 6e 5f 74 65 78 74 20 2d 3e 20 22 2e 74 65 78 74 22 0a 20 20 7c 20 53 65 63 .Section_text.->.".text"...|.Sec
0e60 74 69 6f 6e 5f 64 61 74 61 20 69 20 2d 3e 20 69 66 20 69 20 74 68 65 6e 20 22 2e 64 61 74 61 22 tion_data.i.->.if.i.then.".data"
0e80 20 65 6c 73 65 20 22 2e 62 73 73 22 0a 20 20 7c 20 53 65 63 74 69 6f 6e 5f 73 6d 61 6c 6c 5f 64 .else.".bss"...|.Section_small_d
0ea0 61 74 61 20 69 20 2d 3e 20 69 66 20 69 20 74 68 65 6e 20 22 2e 73 64 61 74 61 22 20 65 6c 73 65 ata.i.->.if.i.then.".sdata".else
0ec0 20 22 2e 73 62 73 73 22 0a 20 20 7c 20 53 65 63 74 69 6f 6e 5f 63 6f 6e 73 74 20 2d 3e 20 22 2e .".sbss"...|.Section_const.->.".
0ee0 72 6f 64 61 74 61 22 0a 20 20 7c 20 53 65 63 74 69 6f 6e 5f 73 6d 61 6c 6c 5f 63 6f 6e 73 74 20 rodata"...|.Section_small_const.
0f00 2d 3e 20 22 2e 73 64 61 74 61 32 22 0a 20 20 7c 20 53 65 63 74 69 6f 6e 5f 73 74 72 69 6e 67 20 ->.".sdata2"...|.Section_string.
0f20 2d 3e 20 22 2e 72 6f 64 61 74 61 22 0a 20 20 7c 20 53 65 63 74 69 6f 6e 5f 6c 69 74 65 72 61 6c ->.".rodata"...|.Section_literal
0f40 20 2d 3e 20 22 2e 72 6f 64 61 74 61 22 20 28 2a 20 73 68 6f 75 6c 64 20 68 61 76 65 20 62 65 65 .->.".rodata".(*.should.have.bee
0f60 6e 20 2e 72 6f 64 61 74 61 2e 63 73 74 38 2c 20 62 75 74 20 6c 64 20 73 63 72 69 70 74 0a 20 20 n..rodata.cst8,.but.ld.script...
0f80 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
0fa0 20 20 6d 65 72 67 65 73 20 69 74 20 77 69 74 68 20 2e 72 6f 64 61 74 61 20 2a 29 0a 20 20 7c 20 ..merges.it.with..rodata.*)...|.
0fc0 53 65 63 74 69 6f 6e 5f 6a 75 6d 70 74 61 62 6c 65 20 2d 3e 20 22 2e 74 65 78 74 22 0a 20 20 7c Section_jumptable.->.".text"...|
0fe0 20 53 65 63 74 69 6f 6e 5f 75 73 65 72 28 73 2c 20 77 72 2c 20 65 78 29 20 2d 3e 20 73 0a 0a 28 .Section_user(s,.wr,.ex).->.s..(
1000 2a 2a 20 54 61 6b 65 6e 20 66 72 6f 6d 20 43 6f 6d 70 43 65 72 74 20 2a 29 0a 6c 65 74 20 6e 61 **.Taken.from.CompCert.*).let.na
1020 6d 65 5f 6f 66 5f 73 65 63 74 69 6f 6e 5f 44 69 61 62 3a 0a 20 20 20 20 73 65 63 74 69 6f 6e 5f me_of_section_Diab:.....section_
1040 6e 61 6d 65 20 2d 3e 20 73 74 72 69 6e 67 0a 20 20 3d 20 66 75 6e 63 74 69 6f 6e 0a 20 20 7c 20 name.->.string...=.function...|.
1060 53 65 63 74 69 6f 6e 5f 74 65 78 74 20 2d 3e 20 22 2e 74 65 78 74 22 0a 20 20 7c 20 53 65 63 74 Section_text.->.".text"...|.Sect
1080 69 6f 6e 5f 64 61 74 61 20 69 20 2d 3e 20 69 66 20 69 20 74 68 65 6e 20 22 2e 64 61 74 61 22 20 ion_data.i.->.if.i.then.".data".
10a0 65 6c 73 65 20 22 2e 62 73 73 22 0a 20 20 7c 20 53 65 63 74 69 6f 6e 5f 73 6d 61 6c 6c 5f 64 61 else.".bss"...|.Section_small_da
10c0 74 61 20 69 20 2d 3e 20 69 66 20 69 20 74 68 65 6e 20 22 2e 73 64 61 74 61 22 20 65 6c 73 65 20 ta.i.->.if.i.then.".sdata".else.
10e0 22 2e 73 62 73 73 22 0a 20 20 7c 20 53 65 63 74 69 6f 6e 5f 63 6f 6e 73 74 20 2d 3e 20 22 2e 74 ".sbss"...|.Section_const.->.".t
1100 65 78 74 22 0a 20 20 7c 20 53 65 63 74 69 6f 6e 5f 73 6d 61 6c 6c 5f 63 6f 6e 73 74 20 2d 3e 20 ext"...|.Section_small_const.->.
1120 22 2e 73 64 61 74 61 32 22 0a 20 20 7c 20 53 65 63 74 69 6f 6e 5f 73 74 72 69 6e 67 20 2d 3e 20 ".sdata2"...|.Section_string.->.
1140 22 2e 74 65 78 74 22 0a 20 20 7c 20 53 65 63 74 69 6f 6e 5f 6c 69 74 65 72 61 6c 20 2d 3e 20 22 ".text"...|.Section_literal.->."
1160 2e 74 65 78 74 22 0a 20 20 7c 20 53 65 63 74 69 6f 6e 5f 6a 75 6d 70 74 61 62 6c 65 20 2d 3e 20 .text"...|.Section_jumptable.->.
1180 22 2e 74 65 78 74 22 0a 20 20 7c 20 53 65 63 74 69 6f 6e 5f 75 73 65 72 28 73 2c 20 77 72 2c 20 ".text"...|.Section_user(s,.wr,.
11a0 65 78 29 20 2d 3e 20 73 0a 0a 28 2a 2a 20 54 61 6b 65 6e 20 66 72 6f 6d 20 43 6f 6d 70 43 65 72 ex).->.s..(**.Taken.from.CompCer
11c0 74 20 2a 29 0a 6c 65 74 20 6e 61 6d 65 5f 6f 66 5f 73 65 63 74 69 6f 6e 3a 0a 20 20 20 20 73 65 t.*).let.name_of_section:.....se
11e0 63 74 69 6f 6e 5f 6e 61 6d 65 20 2d 3e 20 73 74 72 69 6e 67 0a 20 20 3d 0a 20 20 62 65 67 69 6e ction_name.->.string...=...begin
1200 20 6d 61 74 63 68 20 43 6f 6e 66 69 67 75 72 61 74 69 6f 6e 2e 73 79 73 74 65 6d 20 77 69 74 68 .match.Configuration.system.with
1220 0a 20 20 7c 20 22 6d 61 63 6f 73 78 22 20 2d 3e 20 61 73 73 65 72 74 20 66 61 6c 73 65 0a 20 20 ...|."macosx".->.assert.false...
1240 7c 20 22 6c 69 6e 75 78 22 20 20 2d 3e 20 6e 61 6d 65 5f 6f 66 5f 73 65 63 74 69 6f 6e 5f 4c 69 |."linux"..->.name_of_section_Li
1260 6e 75 78 0a 20 20 7c 20 22 64 69 61 62 22 20 20 20 2d 3e 20 6e 61 6d 65 5f 6f 66 5f 73 65 63 74 nux...|."diab"...->.name_of_sect
1280 69 6f 6e 5f 44 69 61 62 0a 20 20 7c 20 5f 20 20 20 20 20 20 20 20 2d 3e 20 61 73 73 65 72 74 20 ion_Diab...|._........->.assert.
12a0 66 61 6c 73 65 0a 20 20 65 6e 64 0a 0a 28 2a 2a 20 43 6f 6d 70 61 72 65 73 20 61 20 43 6f 6d 70 false...end..(**.Compares.a.Comp
12c0 43 65 72 74 20 73 65 63 74 69 6f 6e 20 6e 61 6d 65 20 77 69 74 68 20 61 6e 20 45 4c 46 20 73 65 Cert.section.name.with.an.ELF.se
12e0 63 74 69 6f 6e 20 6e 61 6d 65 2e 20 2a 29 0a 6c 65 74 20 6d 61 74 63 68 5f 73 65 63 74 69 6f 6e ction.name..*).let.match_section
1300 73 5f 6e 61 6d 65 0a 20 20 20 20 28 63 5f 73 65 63 74 69 6f 6e 3a 20 73 65 63 74 69 6f 6e 5f 6e s_name.....(c_section:.section_n
1320 61 6d 65 29 20 28 65 5f 6e 61 6d 65 3a 20 73 74 72 69 6e 67 29 20 28 73 66 77 3a 20 73 5f 66 72 ame).(e_name:.string).(sfw:.s_fr
1340 61 6d 65 77 6f 72 6b 29 3a 0a 20 20 20 20 73 5f 66 72 61 6d 65 77 6f 72 6b 0a 20 20 20 20 3d 0a amework):.....s_framework.....=.
1360 20 20 6c 65 74 20 63 5f 6e 61 6d 65 20 3d 20 6e 61 6d 65 5f 6f 66 5f 73 65 63 74 69 6f 6e 20 63 ..let.c_name.=.name_of_section.c
1380 5f 73 65 63 74 69 6f 6e 20 69 6e 0a 20 20 69 66 20 65 5f 6e 61 6d 65 20 3d 20 63 5f 6e 61 6d 65 _section.in...if.e_name.=.c_name
13a0 20 7c 7c 0a 20 20 20 20 28 63 5f 6e 61 6d 65 20 3d 20 22 2e 62 73 73 22 20 26 26 20 65 5f 6e 61 .||.....(c_name.=.".bss".&&.e_na
13c0 6d 65 20 3d 20 22 2e 73 62 73 73 22 29 20 28 2a 20 74 68 69 73 20 69 73 20 63 6f 6d 70 6c 69 63 me.=.".sbss").(*.this.is.complic
13e0 61 74 65 64 21 20 2a 29 0a 20 20 74 68 65 6e 20 73 66 77 0a 20 20 65 6c 73 65 20 28 0a 20 20 20 ated!.*)...then.sfw...else.(....
1400 20 73 66 77 0a 20 20 20 20 3e 3e 3e 20 73 66 5f 65 66 20 5e 25 3d 0a 20 20 20 20 20 20 28 61 64 .sfw.....>>>.sf_ef.^%=.......(ad
1420 64 5f 6c 6f 67 0a 20 20 20 20 20 20 20 20 20 28 45 52 52 4f 52 0a 20 20 20 20 20 20 20 20 20 20 d_log..........(ERROR...........
1440 20 20 28 22 53 65 63 74 69 6f 6e 20 73 68 6f 75 6c 64 20 62 65 20 22 20 5e 20 63 5f 6e 61 6d 65 ..("Section.should.be.".^.c_name
1460 20 5e 20 22 20 69 6e 73 74 65 61 64 20 6f 66 20 22 20 5e 20 65 5f 6e 61 6d 65 29 0a 20 20 20 20 .^.".instead.of.".^.e_name).....
1480 20 20 20 20 20 29 0a 20 20 20 20 20 20 29 0a 20 20 29 0a 0a 28 2a 2a 20 43 68 65 63 6b 73 20 74 .....).......)...)..(**.Checks.t
14a0 68 65 20 73 79 6d 62 6f 6c 20 74 61 62 6c 65 20 65 6e 74 72 79 20 6f 66 20 74 68 65 20 66 75 6e he.symbol.table.entry.of.the.fun
14c0 63 74 69 6f 6e 20 73 79 6d 62 6f 6c 20 6e 75 6d 62 65 72 20 5b 73 79 6d 5f 6e 64 78 5d 2c 0a 20 ction.symbol.number.[sym_ndx],..
14e0 20 20 20 61 63 63 6f 72 64 69 6e 67 20 74 6f 20 43 6f 6d 70 43 65 72 74 27 73 20 5b 69 64 65 6e ...according.to.CompCert's.[iden
1500 74 5d 2e 0a 2a 29 0a 6c 65 74 20 63 68 65 63 6b 5f 66 75 6e 5f 73 79 6d 74 61 62 0a 20 20 20 20 t]..*).let.check_fun_symtab.....
1520 28 69 64 65 6e 74 3a 20 69 64 65 6e 74 29 20 28 73 79 6d 5f 6e 64 78 3a 20 69 6e 74 29 20 28 73 (ident:.ident).(sym_ndx:.int).(s
1540 66 77 3a 20 73 5f 66 72 61 6d 65 77 6f 72 6b 29 3a 0a 20 20 20 20 73 5f 66 72 61 6d 65 77 6f 72 fw:.s_framework):.....s_framewor
1560 6b 0a 20 20 20 20 3d 0a 20 20 6c 65 74 20 65 6c 66 20 3d 20 73 66 77 2e 65 66 2e 65 6c 66 20 69 k.....=...let.elf.=.sfw.ef.elf.i
1580 6e 0a 20 20 6c 65 74 20 73 79 6d 74 61 62 5f 73 6e 64 78 20 3d 20 66 72 6f 6d 5f 73 6f 6d 65 20 n...let.symtab_sndx.=.from_some.
15a0 28 73 65 63 74 69 6f 6e 5f 6e 64 78 5f 62 79 5f 6e 61 6d 65 20 65 6c 66 20 22 2e 73 79 6d 74 61 (section_ndx_by_name.elf.".symta
15c0 62 22 29 20 69 6e 0a 20 20 6c 65 74 20 73 79 6d 74 61 62 5f 65 6e 74 5f 73 74 61 72 74 20 3d 0a b").in...let.symtab_ent_start.=.
15e0 20 20 20 20 49 6e 74 33 32 2e 28 61 64 64 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 65 6c 66 2e ....Int32.(add..............elf.
1600 65 5f 73 68 64 72 61 2e 28 73 79 6d 74 61 62 5f 73 6e 64 78 29 2e 73 68 5f 6f 66 66 73 65 74 0a e_shdra.(symtab_sndx).sh_offset.
1620 20 20 20 20 20 20 20 20 20 20 20 20 20 28 53 61 66 65 33 32 2e 6f 66 5f 69 6e 74 20 28 31 36 20 .............(Safe32.of_int.(16.
1640 2a 20 73 79 6d 5f 6e 64 78 29 29 29 20 69 6e 0a 20 20 6c 65 74 20 73 79 6d 20 3d 20 73 66 77 2e *.sym_ndx))).in...let.sym.=.sfw.
1660 65 66 2e 65 6c 66 2e 65 5f 73 79 6d 74 61 62 2e 28 73 79 6d 5f 6e 64 78 29 20 69 6e 0a 20 20 6c ef.elf.e_symtab.(sym_ndx).in...l
1680 65 74 20 61 74 6f 6d 20 3d 20 48 61 73 68 74 62 6c 2e 66 69 6e 64 20 73 66 77 2e 61 74 6f 6d 73 et.atom.=.Hashtbl.find.sfw.atoms
16a0 20 69 64 65 6e 74 20 69 6e 0a 20 20 6c 65 74 20 73 65 63 74 69 6f 6e 20 3d 0a 20 20 20 20 6d 61 .ident.in...let.section.=.....ma
16c0 74 63 68 20 61 74 6f 6d 2e 61 5f 73 65 63 74 69 6f 6e 73 20 77 69 74 68 0a 20 20 20 20 7c 20 5b tch.atom.a_sections.with.....|.[
16e0 74 3b 20 5f 3b 20 5f 5d 20 2d 3e 20 74 0a 20 20 20 20 7c 20 5f 20 2d 3e 20 53 65 63 74 69 6f 6e t;._;._].->.t.....|._.->.Section
1700 5f 74 65 78 74 0a 20 20 69 6e 0a 20 20 73 66 77 0a 20 20 3e 3e 3e 20 63 68 65 63 6b 5f 73 74 5f _text...in...sfw...>>>.check_st_
1720 62 69 6e 64 20 61 74 6f 6d 20 73 79 6d 0a 20 20 3e 3e 3e 20 28 0a 20 20 20 20 69 66 20 73 79 6d bind.atom.sym...>>>.(.....if.sym
1740 2e 73 74 5f 74 79 70 65 20 3d 20 53 54 54 5f 46 55 4e 43 0a 20 20 20 20 74 68 65 6e 20 69 64 0a .st_type.=.STT_FUNC.....then.id.
1760 20 20 20 20 65 6c 73 65 20 28 73 66 5f 65 66 20 5e 25 3d 0a 20 20 20 20 20 20 20 20 61 64 64 5f ....else.(sf_ef.^%=.........add_
1780 6c 6f 67 20 28 45 52 52 4f 52 28 22 53 79 6d 62 6f 6c 20 73 68 6f 75 6c 64 20 68 61 76 65 20 74 log.(ERROR("Symbol.should.have.t
17a0 79 70 65 20 53 54 54 5f 46 55 4e 43 22 29 29 0a 20 20 20 20 29 0a 20 20 29 0a 20 20 3e 3e 3e 20 ype.STT_FUNC")).....)...)...>>>.
17c0 28 0a 20 20 20 20 69 66 20 73 79 6d 2e 73 74 5f 6f 74 68 65 72 20 3d 20 30 0a 20 20 20 20 74 68 (.....if.sym.st_other.=.0.....th
17e0 65 6e 20 69 64 0a 20 20 20 20 65 6c 73 65 20 28 73 66 5f 65 66 20 5e 25 3d 0a 20 20 20 20 20 20 en.id.....else.(sf_ef.^%=.......
1800 20 20 61 64 64 5f 6c 6f 67 20 28 45 52 52 4f 52 28 22 53 79 6d 62 6f 6c 20 73 68 6f 75 6c 64 20 ..add_log.(ERROR("Symbol.should.
1820 68 61 76 65 20 73 74 5f 6f 74 68 65 72 20 73 65 74 20 74 6f 20 30 22 29 29 0a 20 20 20 20 29 0a have.st_other.set.to.0")).....).
1840 20 20 29 0a 20 20 3e 3e 3e 20 6d 61 74 63 68 5f 73 65 63 74 69 6f 6e 73 5f 6e 61 6d 65 20 73 65 ..)...>>>.match_sections_name.se
1860 63 74 69 6f 6e 20 65 6c 66 2e 65 5f 73 68 64 72 61 2e 28 73 79 6d 2e 73 74 5f 73 68 6e 64 78 29 ction.elf.e_shdra.(sym.st_shndx)
1880 2e 73 68 5f 6e 61 6d 65 0a 20 20 3e 3e 3e 20 73 66 5f 65 66 20 5e 25 3d 0a 20 20 20 20 20 20 61 .sh_name...>>>.sf_ef.^%=.......a
18a0 64 64 5f 72 61 6e 67 65 20 73 79 6d 74 61 62 5f 65 6e 74 5f 73 74 61 72 74 20 31 36 6c 20 34 20 dd_range.symtab_ent_start.16l.4.
18c0 28 53 79 6d 74 61 62 5f 66 75 6e 63 74 69 6f 6e 28 73 79 6d 29 29 0a 0a 28 2a 2a 20 43 68 65 63 (Symtab_function(sym))..(**.Chec
18e0 6b 73 20 74 68 61 74 20 74 68 65 20 6f 66 66 73 65 74 20 5b 6f 66 73 5d 20 69 73 20 77 65 6c 6c ks.that.the.offset.[ofs].is.well
1900 20 61 6c 69 67 6e 65 64 20 77 69 74 68 20 72 65 67 61 72 64 73 20 74 6f 20 5b 61 6c 5d 2c 20 65 .aligned.with.regards.to.[al],.e
1920 78 70 72 65 73 73 65 64 0a 20 20 20 20 69 6e 20 62 79 74 65 73 2e 20 2a 29 0a 6c 65 74 20 69 73 xpressed.....in.bytes..*).let.is
1940 5f 77 65 6c 6c 5f 61 6c 69 67 6e 65 64 20 28 6f 66 73 3a 20 69 6e 74 33 32 29 20 28 61 6c 3a 20 _well_aligned.(ofs:.int32).(al:.
1960 69 6e 74 29 3a 20 62 6f 6f 6c 20 3d 0a 20 20 61 6c 20 3d 20 30 20 7c 7c 20 49 6e 74 33 32 2e 72 int):.bool.=...al.=.0.||.Int32.r
1980 65 6d 20 6f 66 73 20 28 53 61 66 65 33 32 2e 6f 66 5f 69 6e 74 20 61 6c 29 20 3d 20 30 6c 0a 0a em.ofs.(Safe32.of_int.al).=.0l..
19a0 28 2a 2a 20 41 64 64 73 20 61 20 66 75 6e 63 74 69 6f 6e 20 73 79 6d 62 6f 6c 20 74 6f 20 74 68 (**.Adds.a.function.symbol.to.th
19c0 65 20 73 65 74 20 6f 66 20 63 6f 76 65 72 65 64 20 73 79 6d 62 6f 6c 73 2e 20 2a 29 0a 6c 65 74 e.set.of.covered.symbols..*).let
19e0 20 6d 61 72 6b 5f 63 6f 76 65 72 65 64 5f 66 75 6e 5f 73 79 6d 5f 6e 64 78 20 28 6e 64 78 3a 20 .mark_covered_fun_sym_ndx.(ndx:.
1a00 69 6e 74 29 20 66 66 77 3a 20 66 5f 66 72 61 6d 65 77 6f 72 6b 20 3d 0a 20 20 6c 65 74 20 65 6c int).ffw:.f_framework.=...let.el
1a20 66 20 3d 20 66 66 77 2e 73 66 2e 65 66 2e 65 6c 66 20 69 6e 0a 20 20 6c 65 74 20 73 79 6d 20 3d f.=.ffw.sf.ef.elf.in...let.sym.=
1a40 20 65 6c 66 2e 65 5f 73 79 6d 74 61 62 2e 28 6e 64 78 29 20 69 6e 0a 20 20 6c 65 74 20 73 79 6d .elf.e_symtab.(ndx).in...let.sym
1a60 5f 73 6e 64 78 20 3d 20 73 79 6d 2e 73 74 5f 73 68 6e 64 78 20 69 6e 0a 20 20 6c 65 74 20 73 79 _sndx.=.sym.st_shndx.in...let.sy
1a80 6d 5f 73 69 7a 65 20 3d 20 73 79 6d 2e 73 74 5f 73 69 7a 65 20 69 6e 0a 20 20 6c 65 74 20 73 79 m_size.=.sym.st_size.in...let.sy
1aa0 6d 5f 73 68 64 72 20 3d 20 65 6c 66 2e 65 5f 73 68 64 72 61 2e 28 73 79 6d 5f 73 6e 64 78 29 20 m_shdr.=.elf.e_shdra.(sym_sndx).
1ac0 69 6e 0a 20 20 6c 65 74 20 73 79 6d 5f 76 61 64 64 72 20 3d 20 73 79 6d 2e 73 74 5f 76 61 6c 75 in...let.sym_vaddr.=.sym.st_valu
1ae0 65 20 69 6e 0a 20 20 6c 65 74 20 73 79 6d 5f 6f 66 73 5f 6c 6f 63 61 6c 20 3d 20 49 6e 74 33 32 e.in...let.sym_ofs_local.=.Int32
1b00 2e 73 75 62 20 73 79 6d 5f 76 61 64 64 72 20 73 79 6d 5f 73 68 64 72 2e 73 68 5f 61 64 64 72 20 .sub.sym_vaddr.sym_shdr.sh_addr.
1b20 69 6e 0a 20 20 6c 65 74 20 73 78 6e 5f 6f 66 73 20 3d 20 73 79 6d 5f 73 68 64 72 2e 73 68 5f 6f in...let.sxn_ofs.=.sym_shdr.sh_o
1b40 66 66 73 65 74 20 69 6e 0a 20 20 6c 65 74 20 73 79 6d 5f 62 65 67 69 6e 20 3d 20 49 6e 74 33 32 ffset.in...let.sym_begin.=.Int32
1b60 2e 61 64 64 20 73 78 6e 5f 6f 66 73 20 73 79 6d 5f 6f 66 73 5f 6c 6f 63 61 6c 20 69 6e 0a 20 20 .add.sxn_ofs.sym_ofs_local.in...
1b80 6c 65 74 20 61 74 6f 6d 20 3d 20 48 61 73 68 74 62 6c 2e 66 69 6e 64 20 66 66 77 2e 73 66 2e 61 let.atom.=.Hashtbl.find.ffw.sf.a
1ba0 74 6f 6d 73 20 66 66 77 2e 74 68 69 73 5f 69 64 65 6e 74 20 69 6e 0a 20 20 6c 65 74 20 61 6c 69 toms.ffw.this_ident.in...let.ali
1bc0 67 6e 20 3d 0a 20 20 20 20 6d 61 74 63 68 20 61 74 6f 6d 2e 61 5f 61 6c 69 67 6e 6d 65 6e 74 20 gn.=.....match.atom.a_alignment.
1be0 77 69 74 68 0a 20 20 20 20 7c 20 53 6f 6d 65 28 61 29 20 2d 3e 20 61 0a 20 20 20 20 7c 20 4e 6f with.....|.Some(a).->.a.....|.No
1c00 6e 65 20 2d 3e 20 30 0a 20 20 69 6e 0a 20 20 66 66 77 2e 73 66 2e 65 66 2e 63 68 6b 64 5f 66 75 ne.->.0...in...ffw.sf.ef.chkd_fu
1c20 6e 5f 73 79 6d 73 2e 28 6e 64 78 29 20 3c 2d 20 74 72 75 65 3b 0a 20 20 66 66 77 0a 20 20 3e 3e n_syms.(ndx).<-.true;...ffw...>>
1c40 3e 20 28 66 66 5f 65 66 20 5e 25 3d 20 61 64 64 5f 72 61 6e 67 65 20 73 79 6d 5f 62 65 67 69 6e >.(ff_ef.^%=.add_range.sym_begin
1c60 20 73 79 6d 5f 73 69 7a 65 20 61 6c 69 67 6e 20 28 46 75 6e 63 74 69 6f 6e 5f 73 79 6d 62 6f 6c .sym_size.align.(Function_symbol
1c80 28 73 79 6d 29 29 29 0a 20 20 3e 3e 3e 20 28 66 66 5f 73 66 20 5e 25 3d 0a 20 20 20 20 20 20 69 (sym)))...>>>.(ff_sf.^%=.......i
1ca0 66 20 6e 6f 74 20 28 69 73 5f 77 65 6c 6c 5f 61 6c 69 67 6e 65 64 20 73 79 6d 5f 6f 66 73 5f 6c f.not.(is_well_aligned.sym_ofs_l
1cc0 6f 63 61 6c 20 61 6c 69 67 6e 29 0a 20 20 20 20 20 20 74 68 65 6e 20 28 0a 20 20 20 20 20 20 20 ocal.align).......then.(........
1ce0 20 73 66 5f 65 66 20 5e 25 3d 0a 20 20 20 20 20 20 20 20 20 20 61 64 64 5f 6c 6f 67 20 28 45 52 .sf_ef.^%=...........add_log.(ER
1d00 52 4f 52 28 22 53 79 6d 62 6f 6c 20 6e 6f 74 20 63 6f 72 72 65 63 74 6c 79 20 61 6c 69 67 6e 65 ROR("Symbol.not.correctly.aligne
1d20 64 20 69 6e 20 74 68 65 20 45 4c 46 20 66 69 6c 65 22 29 29 0a 20 20 20 20 20 20 29 0a 20 20 20 d.in.the.ELF.file")).......)....
1d40 20 20 20 65 6c 73 65 20 69 64 0a 20 20 29 0a 20 20 3e 3e 3e 20 28 66 66 5f 73 66 20 5e 25 3d 20 ...else.id...)...>>>.(ff_sf.^%=.
1d60 63 68 65 63 6b 5f 66 75 6e 5f 73 79 6d 74 61 62 20 66 66 77 2e 74 68 69 73 5f 69 64 65 6e 74 20 check_fun_symtab.ffw.this_ident.
1d80 6e 64 78 29 0a 0a 28 2a 2a 20 54 61 6b 65 6e 20 66 72 6f 6d 20 43 6f 6d 70 43 65 72 74 20 2a 29 ndx)..(**.Taken.from.CompCert.*)
1da0 0a 6c 65 74 20 72 65 5f 76 61 72 69 61 64 69 63 5f 73 74 75 62 3a 20 53 74 72 2e 72 65 67 65 78 .let.re_variadic_stub:.Str.regex
1dc0 70 20 3d 20 53 74 72 2e 72 65 67 65 78 70 20 22 5c 5c 28 2e 2a 5c 5c 29 5c 5c 24 5b 69 66 5d 2a p.=.Str.regexp."\\(.*\\)\\$[if]*
1de0 24 22 0a 0a 28 2a 2a 20 54 72 69 65 73 20 74 6f 20 72 65 66 69 6e 65 20 74 68 65 20 6d 61 70 70 $"..(**.Tries.to.refine.the.mapp
1e00 69 6e 67 20 66 6f 72 20 6b 65 79 20 5b 6b 5d 20 69 6e 20 5b 69 64 65 6e 74 5f 74 6f 5f 73 79 6d ing.for.key.[k].in.[ident_to_sym
1e20 5f 6e 64 78 5d 20 73 6f 20 74 68 61 74 20 69 74 20 69 73 0a 20 20 20 20 6d 61 70 70 65 64 20 74 _ndx].so.that.it.is.....mapped.t
1e40 6f 20 5b 76 61 64 64 72 5d 2e 20 46 61 69 6c 73 20 69 66 20 6e 6f 20 73 79 6d 62 6f 6c 20 69 6e o.[vaddr]..Fails.if.no.symbol.in
1e60 20 5b 6b 5d 27 73 20 6d 61 70 70 69 6e 67 20 68 61 73 20 74 68 61 74 20 76 69 72 74 75 61 6c 0a .[k]'s.mapping.has.that.virtual.
1e80 20 20 20 20 61 64 64 72 65 73 73 2c 20 75 6e 6c 65 73 73 20 74 68 65 20 73 79 6d 62 6f 6c 20 69 ....address,.unless.the.symbol.i
1ea0 73 20 61 20 73 74 75 62 20 66 72 6f 6d 20 43 6f 6d 70 43 65 72 74 2e 20 4f 74 68 65 72 77 69 73 s.a.stub.from.CompCert..Otherwis
1ec0 65 2c 20 69 74 20 66 69 6c 74 65 72 73 0a 20 20 20 20 6f 75 74 20 61 6c 6c 20 73 79 6d 62 6f 6c e,.it.filters.....out.all.symbol
1ee0 73 20 77 68 6f 73 65 20 76 69 72 74 75 61 6c 20 61 64 64 72 65 73 73 20 64 6f 65 73 20 6e 6f 74 s.whose.virtual.address.does.not
1f00 20 6d 61 74 63 68 20 5b 76 61 64 64 72 5d 2e 0a 2a 29 0a 6c 65 74 20 69 64 6d 61 70 5f 75 6e 69 .match.[vaddr]..*).let.idmap_uni
1f20 66 79 0a 20 20 20 20 28 6b 3a 20 70 6f 73 69 74 69 76 65 29 20 28 76 61 64 64 72 3a 20 69 6e 74 fy.....(k:.positive).(vaddr:.int
1f40 33 32 29 20 28 73 66 77 3a 20 73 5f 66 72 61 6d 65 77 6f 72 6b 29 3a 20 73 5f 66 72 61 6d 65 77 32).(sfw:.s_framework):.s_framew
1f60 6f 72 6b 20 6f 72 5f 65 72 72 20 3d 0a 20 20 74 72 79 20 28 0a 20 20 20 20 6c 65 74 20 69 64 5f ork.or_err.=...try.(.....let.id_
1f80 6e 64 78 65 73 20 3d 20 50 6f 73 4d 61 70 2e 66 69 6e 64 20 6b 20 73 66 77 2e 69 64 65 6e 74 5f ndxes.=.PosMap.find.k.sfw.ident_
1fa0 74 6f 5f 73 79 6d 5f 6e 64 78 20 69 6e 0a 20 20 20 20 6d 61 74 63 68 20 4c 69 73 74 2e 66 69 6c to_sym_ndx.in.....match.List.fil
1fc0 74 65 72 0a 20 20 20 20 20 20 28 66 75 6e 20 6e 64 78 20 2d 3e 20 73 66 77 2e 65 66 2e 65 6c 66 ter.......(fun.ndx.->.sfw.ef.elf
1fe0 2e 65 5f 73 79 6d 74 61 62 2e 28 6e 64 78 29 2e 73 74 5f 76 61 6c 75 65 20 3d 20 76 61 64 64 72 .e_symtab.(ndx).st_value.=.vaddr
2000 29 0a 20 20 20 20 20 20 69 64 5f 6e 64 78 65 73 20 77 69 74 68 0a 20 20 20 20 20 20 7c 20 5b 5d ).......id_ndxes.with.......|.[]
2020 20 2d 3e 0a 20 20 20 20 20 20 20 20 20 20 69 66 20 53 74 72 2e 73 74 72 69 6e 67 5f 6d 61 74 63 .->...........if.Str.string_matc
2040 68 0a 20 20 20 20 20 20 20 20 20 20 20 20 72 65 5f 76 61 72 69 61 64 69 63 5f 73 74 75 62 20 28 h.............re_variadic_stub.(
2060 48 61 73 68 74 62 6c 2e 66 69 6e 64 20 73 66 77 2e 69 64 65 6e 74 5f 74 6f 5f 6e 61 6d 65 20 6b Hashtbl.find.sfw.ident_to_name.k
2080 29 20 30 0a 20 20 20 20 20 20 20 20 20 20 74 68 65 6e 20 28 2a 20 74 68 69 73 20 70 6f 69 6e 74 ).0...........then.(*.this.point
20a0 73 20 74 6f 20 61 20 73 74 75 62 20 2a 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 74 72 79 20 28 s.to.a.stub.*).............try.(
20c0 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6c 65 74 20 76 20 3d 20 50 6f 73 4d 61 70 2e 66 69 ...............let.v.=.PosMap.fi
20e0 6e 64 20 6b 20 73 66 77 2e 73 74 75 62 5f 69 64 65 6e 74 5f 74 6f 5f 76 61 64 64 72 20 69 6e 0a nd.k.sfw.stub_ident_to_vaddr.in.
2100 20 20 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 76 61 64 64 72 20 3d 20 76 0a 20 20 20 20 20 ..............if.vaddr.=.v......
2120 20 20 20 20 20 20 20 20 20 74 68 65 6e 20 4f 4b 28 73 66 77 29 0a 20 20 20 20 20 20 20 20 20 20 .........then.OK(sfw)...........
2140 20 20 20 20 65 6c 73 65 20 45 52 52 28 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 49 ....else.ERR(................."I
2160 6e 63 6f 68 65 72 65 6e 74 20 63 6f 6e 73 74 72 61 69 6e 74 73 20 66 6f 72 20 73 74 75 62 3a 20 ncoherent.constraints.for.stub:.
2180 22 20 5e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 48 61 73 68 74 62 6c 2e 66 69 ".^...................Hashtbl.fi
21a0 6e 64 20 73 66 77 2e 69 64 65 6e 74 5f 74 6f 5f 6e 61 6d 65 20 6b 0a 20 20 20 20 20 20 20 20 20 nd.sfw.ident_to_name.k..........
21c0 20 20 20 20 20 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 29 0a 20 20 20 20 20 20 20 20 20 20 20 .....).............)............
21e0 20 77 69 74 68 20 4e 6f 74 5f 66 6f 75 6e 64 20 2d 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 .with.Not_found.->..............
2200 20 4f 4b 28 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 73 66 77 0a 20 20 20 20 20 20 20 .OK(.................sfw........
2220 20 20 20 20 20 20 20 20 20 3e 3e 3e 20 28 73 74 75 62 5f 69 64 65 6e 74 5f 74 6f 5f 76 61 64 64 .........>>>.(stub_ident_to_vadd
2240 72 20 5e 25 3d 20 50 6f 73 4d 61 70 2e 61 64 64 20 6b 20 76 61 64 64 72 29 0a 20 20 20 20 20 20 r.^%=.PosMap.add.k.vaddr).......
2260 20 20 20 20 20 20 20 20 29 0a 20 20 20 20 20 20 20 20 20 20 65 6c 73 65 20 28 2a 20 6e 6f 74 20 ........)...........else.(*.not.
2280 61 20 73 74 75 62 2c 20 73 6f 20 74 68 69 73 20 69 73 20 61 20 72 65 61 6c 20 65 72 72 6f 72 20 a.stub,.so.this.is.a.real.error.
22a0 2a 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 45 52 52 28 0a 20 20 20 20 20 20 20 20 20 20 20 20 *).............ERR(.............
22c0 20 20 22 49 6e 63 6f 68 65 72 65 6e 74 20 63 6f 6e 73 74 72 61 69 6e 74 73 20 66 6f 72 20 69 64 .."Incoherent.constraints.for.id
22e0 65 6e 74 20 22 20 5e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 48 61 73 68 74 62 6c 2e ent.".^.................Hashtbl.
2300 66 69 6e 64 20 73 66 77 2e 69 64 65 6e 74 5f 74 6f 5f 6e 61 6d 65 20 6b 20 5e 0a 20 20 20 20 20 find.sfw.ident_to_name.k.^......
2320 20 20 20 20 20 20 20 20 20 20 20 22 20 77 69 74 68 20 76 61 6c 75 65 20 22 20 5e 0a 20 20 20 20 ...........".with.value.".^.....
2340 20 20 20 20 20 20 20 20 20 20 20 20 73 74 72 69 6e 67 5f 6f 66 5f 69 6e 74 33 32 20 76 61 64 64 ............string_of_int32.vadd
2360 72 20 5e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 20 61 6e 64 20 63 61 6e 64 69 64 r.^.................".and.candid
2380 61 74 65 73 20 5b 22 20 5e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 74 72 69 6e ates.[".^.................(strin
23a0 67 5f 6f 66 5f 6c 69 73 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 66 75 g_of_list....................(fu
23c0 6e 20 6e 64 78 20 2d 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 73 74 n.ndx.->......................st
23e0 72 69 6e 67 5f 6f 66 5f 69 6e 74 33 32 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ring_of_int32...................
2400 20 20 20 20 20 73 66 77 2e 65 66 2e 65 6c 66 2e 65 5f 73 79 6d 74 61 62 2e 28 6e 64 78 29 2e 73 .....sfw.ef.elf.e_symtab.(ndx).s
2420 74 5f 76 61 6c 75 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 29 0a 20 20 20 t_value....................)....
2440 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 2c 20 22 20 69 64 5f 6e 64 78 65 73 0a 20 20 ................",.".id_ndxes...
2460 20 20 20 20 20 20 20 20 20 20 20 20 20 20 29 20 5e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ..............).^...............
2480 20 20 22 5d 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 29 0a 20 20 20 20 20 20 7c 20 6e 64 78 65 .."]".............).......|.ndxe
24a0 73 20 2d 3e 0a 20 20 20 20 20 20 20 20 20 20 69 66 20 69 64 5f 6e 64 78 65 73 20 3d 20 6e 64 78 s.->...........if.id_ndxes.=.ndx
24c0 65 73 0a 20 20 20 20 20 20 20 20 20 20 74 68 65 6e 20 4f 4b 28 73 66 77 29 0a 20 20 20 20 20 20 es...........then.OK(sfw).......
24e0 20 20 20 20 65 6c 73 65 20 4f 4b 28 28 69 64 65 6e 74 5f 74 6f 5f 73 79 6d 5f 6e 64 78 20 5e 25 ....else.OK((ident_to_sym_ndx.^%
2500 3d 20 28 50 6f 73 4d 61 70 2e 61 64 64 20 6b 20 6e 64 78 65 73 29 29 20 73 66 77 29 0a 20 20 29 =.(PosMap.add.k.ndxes)).sfw)...)
2520 0a 20 20 77 69 74 68 0a 20 20 7c 20 4e 6f 74 5f 66 6f 75 6e 64 20 2d 3e 0a 20 20 20 20 20 20 45 ...with...|.Not_found.->.......E
2540 52 52 28 0a 20 20 20 20 20 20 20 20 22 4d 69 73 73 69 6e 67 20 69 64 65 6e 74 3a 20 22 20 5e 20 RR(........."Missing.ident:.".^.
2560 48 61 73 68 74 62 6c 2e 66 69 6e 64 20 73 66 77 2e 69 64 65 6e 74 5f 74 6f 5f 6e 61 6d 65 20 6b Hashtbl.find.sfw.ident_to_name.k
2580 20 5e 0a 20 20 20 20 20 20 20 20 20 20 22 20 73 68 6f 75 6c 64 20 62 65 20 61 74 20 76 61 64 64 .^...........".should.be.at.vadd
25a0 72 3a 20 22 20 5e 20 73 74 72 69 6e 67 5f 6f 66 5f 69 6e 74 33 32 20 76 61 64 64 72 0a 20 20 20 r:.".^.string_of_int32.vaddr....
25c0 20 20 20 29 0a 0a 28 2a 2a 20 43 68 65 63 6b 73 20 77 68 65 74 68 65 72 20 74 68 65 20 6c 61 62 ...)..(**.Checks.whether.the.lab
25e0 65 6c 20 5b 6b 5d 20 70 6f 69 6e 74 73 20 74 6f 20 5b 76 5d 20 69 6e 20 5b 6c 61 62 65 6c 5f 74 el.[k].points.to.[v].in.[label_t
2600 6f 5f 76 61 64 64 72 5d 2e 20 49 66 20 69 74 20 70 6f 69 6e 74 73 0a 20 20 20 20 74 6f 20 61 6e o_vaddr]..If.it.points.....to.an
2620 6f 74 68 65 72 20 76 69 72 74 75 61 6c 20 61 64 64 72 65 73 73 2c 20 74 68 69 73 20 72 65 74 75 other.virtual.address,.this.retu
2640 72 6e 73 20 61 6e 20 45 52 52 2e 20 49 66 20 69 74 20 70 6f 69 6e 74 73 20 74 6f 20 6e 6f 74 68 rns.an.ERR..If.it.points.to.noth
2660 69 6e 67 2c 0a 20 20 20 20 74 68 65 20 6d 61 70 70 69 6e 67 20 5b 6b 5d 20 2d 3e 20 5b 76 5d 20 ing,.....the.mapping.[k].->.[v].
2680 69 73 20 61 64 64 65 64 2e 20 54 68 75 73 2c 20 74 68 65 20 66 69 72 73 74 20 74 69 6d 65 20 61 is.added..Thus,.the.first.time.a
26a0 20 6c 61 62 65 6c 20 69 73 0a 20 20 20 20 65 6e 63 6f 75 6e 74 65 72 65 64 20 64 65 74 65 72 6d .label.is.....encountered.determ
26c0 69 6e 65 73 20 74 68 65 20 65 78 70 65 63 74 65 64 20 76 69 72 74 75 61 6c 20 61 64 64 72 65 73 ines.the.expected.virtual.addres
26e0 73 20 6f 66 20 69 74 73 20 64 65 73 74 69 6e 61 74 69 6f 6e 2e 0a 20 20 20 20 53 75 62 73 65 71 s.of.its.destination......Subseq
2700 75 65 6e 74 20 72 65 66 65 72 65 6e 63 65 73 20 74 6f 20 74 68 65 20 6c 61 62 65 6c 20 77 69 6c uent.references.to.the.label.wil
2720 6c 20 68 61 76 65 20 74 6f 20 63 6f 6e 66 6f 72 6d 2e 0a 2a 29 0a 6c 65 74 20 6c 62 6c 6d 61 70 l.have.to.conform..*).let.lblmap
2740 5f 75 6e 69 66 79 20 28 6b 3a 20 6c 61 62 65 6c 29 20 28 76 3a 20 69 6e 74 33 32 29 20 28 66 66 _unify.(k:.label).(v:.int32).(ff
2760 77 3a 20 66 5f 66 72 61 6d 65 77 6f 72 6b 29 0a 20 20 20 20 3a 20 66 5f 66 72 61 6d 65 77 6f 72 w:.f_framework).....:.f_framewor
2780 6b 20 6f 72 5f 65 72 72 20 3d 0a 20 20 74 72 79 20 28 0a 20 20 20 20 6c 65 74 20 76 27 20 3d 20 k.or_err.=...try.(.....let.v'.=.
27a0 50 6f 73 4d 61 70 2e 66 69 6e 64 20 6b 20 66 66 77 2e 6c 61 62 65 6c 5f 74 6f 5f 76 61 64 64 72 PosMap.find.k.ffw.label_to_vaddr
27c0 20 69 6e 0a 20 20 20 20 69 66 20 76 20 3d 20 76 27 0a 20 20 20 20 74 68 65 6e 20 4f 4b 20 66 66 .in.....if.v.=.v'.....then.OK.ff
27e0 77 0a 20 20 20 20 65 6c 73 65 20 28 0a 20 20 20 20 20 20 45 52 52 28 0a 20 20 20 20 20 20 20 20 w.....else.(.......ERR(.........
2800 22 49 6e 63 6f 68 65 72 65 6e 74 20 63 6f 6e 73 74 72 61 69 6e 74 73 20 66 6f 72 20 6c 61 62 65 "Incoherent.constraints.for.labe
2820 6c 20 22 20 5e 0a 20 20 20 20 20 20 20 20 20 20 73 74 72 69 6e 67 5f 6f 66 5f 70 6f 73 69 74 69 l.".^...........string_of_positi
2840 76 65 20 6b 20 5e 20 22 20 77 69 74 68 20 76 61 6c 75 65 73 20 22 20 5e 0a 20 20 20 20 20 20 20 ve.k.^.".with.values.".^........
2860 20 20 20 73 74 72 69 6e 67 5f 6f 66 5f 69 6e 74 33 32 20 76 20 5e 20 22 20 61 6e 64 20 22 20 5e ...string_of_int32.v.^.".and.".^
2880 20 73 74 72 69 6e 67 5f 6f 66 5f 69 6e 74 33 32 20 76 27 0a 20 20 20 20 20 20 29 0a 20 20 20 20 .string_of_int32.v'.......).....
28a0 29 0a 20 20 29 0a 20 20 77 69 74 68 0a 20 20 7c 20 4e 6f 74 5f 66 6f 75 6e 64 20 2d 3e 0a 20 20 )...)...with...|.Not_found.->...
28c0 20 20 20 20 4f 4b 20 7b 0a 20 20 20 20 20 20 20 20 66 66 77 20 77 69 74 68 0a 20 20 20 20 20 20 ....OK.{.........ffw.with.......
28e0 20 20 20 20 6c 61 62 65 6c 5f 74 6f 5f 76 61 64 64 72 20 3d 20 50 6f 73 4d 61 70 2e 61 64 64 20 ....label_to_vaddr.=.PosMap.add.
2900 6b 20 76 20 66 66 77 2e 6c 61 62 65 6c 5f 74 6f 5f 76 61 64 64 72 0a 20 20 20 20 20 20 7d 0a 0a k.v.ffw.label_to_vaddr.......}..
2920 6c 65 74 20 69 72 65 67 5f 61 72 72 3a 20 69 72 65 67 20 61 72 72 61 79 20 3d 0a 20 20 5b 7c 0a let.ireg_arr:.ireg.array.=...[|.
2940 20 20 20 20 47 50 52 30 3b 20 47 50 52 31 3b 20 47 50 52 32 3b 20 47 50 52 33 3b 20 47 50 52 34 ....GPR0;.GPR1;.GPR2;.GPR3;.GPR4
2960 3b 20 47 50 52 35 3b 20 47 50 52 36 3b 20 47 50 52 37 3b 20 47 50 52 38 3b 20 47 50 52 39 3b 20 ;.GPR5;.GPR6;.GPR7;.GPR8;.GPR9;.
2980 47 50 52 31 30 3b 20 47 50 52 31 31 3b 0a 20 20 20 20 47 50 52 31 32 3b 20 47 50 52 31 33 3b 20 GPR10;.GPR11;.....GPR12;.GPR13;.
29a0 47 50 52 31 34 3b 20 47 50 52 31 35 3b 20 47 50 52 31 36 3b 20 47 50 52 31 37 3b 20 47 50 52 31 GPR14;.GPR15;.GPR16;.GPR17;.GPR1
29c0 38 3b 20 47 50 52 31 39 3b 20 47 50 52 32 30 3b 20 47 50 52 32 31 3b 20 47 50 52 32 32 3b 0a 20 8;.GPR19;.GPR20;.GPR21;.GPR22;..
29e0 20 20 20 47 50 52 32 33 3b 20 47 50 52 32 34 3b 20 47 50 52 32 35 3b 20 47 50 52 32 36 3b 20 47 ...GPR23;.GPR24;.GPR25;.GPR26;.G
2a00 50 52 32 37 3b 20 47 50 52 32 38 3b 20 47 50 52 32 39 3b 20 47 50 52 33 30 3b 20 47 50 52 33 31 PR27;.GPR28;.GPR29;.GPR30;.GPR31
2a20 0a 20 20 7c 5d 0a 0a 6c 65 74 20 66 72 65 67 5f 61 72 72 3a 20 66 72 65 67 20 61 72 72 61 79 20 ...|]..let.freg_arr:.freg.array.
2a40 3d 0a 20 20 5b 7c 0a 20 20 20 20 46 50 52 30 3b 20 46 50 52 31 3b 20 46 50 52 32 3b 20 46 50 52 =...[|.....FPR0;.FPR1;.FPR2;.FPR
2a60 33 3b 20 46 50 52 34 3b 20 46 50 52 35 3b 20 46 50 52 36 3b 20 46 50 52 37 3b 20 46 50 52 38 3b 3;.FPR4;.FPR5;.FPR6;.FPR7;.FPR8;
2a80 20 46 50 52 39 3b 20 46 50 52 31 30 3b 20 46 50 52 31 31 3b 0a 20 20 20 20 46 50 52 31 32 3b 20 .FPR9;.FPR10;.FPR11;.....FPR12;.
2aa0 46 50 52 31 33 3b 20 46 50 52 31 34 3b 20 46 50 52 31 35 3b 20 46 50 52 31 36 3b 20 46 50 52 31 FPR13;.FPR14;.FPR15;.FPR16;.FPR1
2ac0 37 3b 20 46 50 52 31 38 3b 20 46 50 52 31 39 3b 20 46 50 52 32 30 3b 20 46 50 52 32 31 3b 20 46 7;.FPR18;.FPR19;.FPR20;.FPR21;.F
2ae0 50 52 32 32 3b 0a 20 20 20 20 46 50 52 32 33 3b 20 46 50 52 32 34 3b 20 46 50 52 32 35 3b 20 46 PR22;.....FPR23;.FPR24;.FPR25;.F
2b00 50 52 32 36 3b 20 46 50 52 32 37 3b 20 46 50 52 32 38 3b 20 46 50 52 32 39 3b 20 46 50 52 33 30 PR26;.FPR27;.FPR28;.FPR29;.FPR30
2b20 3b 20 46 50 52 33 31 0a 20 20 7c 5d 0a 0a 6c 65 74 20 63 72 62 69 74 5f 61 72 72 3a 20 63 72 62 ;.FPR31...|]..let.crbit_arr:.crb
2b40 69 74 20 61 72 72 61 79 20 3d 0a 20 20 5b 7c 0a 20 20 20 20 43 52 62 69 74 5f 30 3b 20 43 52 62 it.array.=...[|.....CRbit_0;.CRb
2b60 69 74 5f 31 3b 20 43 52 62 69 74 5f 32 3b 20 43 52 62 69 74 5f 33 0a 20 20 7c 5d 0a 0a 28 2a 2a it_1;.CRbit_2;.CRbit_3...|]..(**
2b80 20 47 65 6e 65 72 69 63 20 63 6f 6e 64 69 74 69 6f 6e 20 63 68 65 63 6b 65 72 20 2a 29 0a 6c 65 .Generic.condition.checker.*).le
2ba0 74 20 63 68 65 63 6b 20 28 63 6f 6e 64 3a 20 62 6f 6f 6c 29 20 28 6d 73 67 3a 20 73 74 72 69 6e t.check.(cond:.bool).(msg:.strin
2bc0 67 29 20 28 66 66 77 3a 20 66 5f 66 72 61 6d 65 77 6f 72 6b 29 3a 20 66 5f 66 72 61 6d 65 77 6f g).(ffw:.f_framework):.f_framewo
2be0 72 6b 20 3d 0a 20 20 69 66 20 63 6f 6e 64 0a 20 20 74 68 65 6e 20 66 66 77 0a 20 20 65 6c 73 65 rk.=...if.cond...then.ffw...else
2c00 20 66 66 77 20 3e 3e 3e 20 66 66 5f 65 66 20 5e 25 3d 20 61 64 64 5f 6c 6f 67 20 28 45 52 52 4f .ffw.>>>.ff_ef.^%=.add_log.(ERRO
2c20 52 28 6d 73 67 29 29 0a 0a 6c 65 74 20 63 68 65 63 6b 5f 65 71 20 28 6d 73 67 3a 20 73 74 72 69 R(msg))..let.check_eq.(msg:.stri
2c40 6e 67 29 20 28 61 3a 20 27 61 29 20 28 62 3a 20 27 61 29 3a 20 66 5f 66 72 61 6d 65 77 6f 72 6b ng).(a:.'a).(b:.'a):.f_framework
2c60 20 2d 3e 20 66 5f 66 72 61 6d 65 77 6f 72 6b 20 3d 0a 20 20 63 68 65 63 6b 20 28 61 20 3d 20 62 .->.f_framework.=...check.(a.=.b
2c80 29 20 6d 73 67 0a 0a 6c 65 74 20 6d 61 74 63 68 5f 62 6f 6f 6c 73 3a 20 20 62 6f 6f 6c 20 20 2d ).msg..let.match_bools:..bool..-
2ca0 3e 20 62 6f 6f 6c 20 20 2d 3e 20 66 5f 66 72 61 6d 65 77 6f 72 6b 20 2d 3e 20 66 5f 66 72 61 6d >.bool..->.f_framework.->.f_fram
2cc0 65 77 6f 72 6b 20 3d 0a 20 20 63 68 65 63 6b 5f 65 71 20 22 6d 61 74 63 68 5f 62 6f 6f 6c 73 22 ework.=...check_eq."match_bools"
2ce0 0a 6c 65 74 20 6d 61 74 63 68 5f 69 6e 74 73 3a 20 20 20 69 6e 74 20 20 20 2d 3e 20 69 6e 74 20 .let.match_ints:...int...->.int.
2d00 20 20 2d 3e 20 66 5f 66 72 61 6d 65 77 6f 72 6b 20 2d 3e 20 66 5f 66 72 61 6d 65 77 6f 72 6b 20 ..->.f_framework.->.f_framework.
2d20 3d 0a 20 20 63 68 65 63 6b 5f 65 71 20 22 6d 61 74 63 68 5f 69 6e 74 73 22 0a 6c 65 74 20 6d 61 =...check_eq."match_ints".let.ma
2d40 74 63 68 5f 69 6e 74 33 32 73 3a 20 69 6e 74 33 32 20 2d 3e 20 69 6e 74 33 32 20 2d 3e 20 66 5f tch_int32s:.int32.->.int32.->.f_
2d60 66 72 61 6d 65 77 6f 72 6b 20 2d 3e 20 66 5f 66 72 61 6d 65 77 6f 72 6b 20 3d 0a 20 20 63 68 65 framework.->.f_framework.=...che
2d80 63 6b 5f 65 71 20 22 6d 61 74 63 68 5f 69 6e 74 33 32 73 22 0a 6c 65 74 20 6d 61 74 63 68 5f 66 ck_eq."match_int32s".let.match_f
2da0 6c 6f 61 74 73 3a 20 66 6c 6f 61 74 20 2d 3e 20 66 6c 6f 61 74 20 2d 3e 20 66 5f 66 72 61 6d 65 loats:.float.->.float.->.f_frame
2dc0 77 6f 72 6b 20 2d 3e 20 66 5f 66 72 61 6d 65 77 6f 72 6b 20 3d 0a 20 20 63 68 65 63 6b 5f 65 71 work.->.f_framework.=...check_eq
2de0 20 22 6d 61 74 63 68 5f 66 6c 6f 61 74 73 22 0a 6c 65 74 20 6d 61 74 63 68 5f 63 72 62 69 74 73 ."match_floats".let.match_crbits
2e00 20 63 62 20 65 62 20 3d 20 63 68 65 63 6b 5f 65 71 20 22 6d 61 74 63 68 5f 63 72 62 69 74 73 22 .cb.eb.=.check_eq."match_crbits"
2e20 20 63 62 20 28 63 72 62 69 74 5f 61 72 72 2e 28 65 62 29 29 0a 6c 65 74 20 6d 61 74 63 68 5f 69 .cb.(crbit_arr.(eb)).let.match_i
2e40 72 65 67 73 20 20 63 72 20 65 72 20 3d 20 63 68 65 63 6b 5f 65 71 20 22 6d 61 74 63 68 5f 69 72 regs..cr.er.=.check_eq."match_ir
2e60 65 67 73 22 20 63 72 20 28 69 72 65 67 5f 61 72 72 2e 28 65 72 29 29 0a 6c 65 74 20 6d 61 74 63 egs".cr.(ireg_arr.(er)).let.matc
2e80 68 5f 66 72 65 67 73 20 20 63 72 20 65 72 20 3d 20 63 68 65 63 6b 5f 65 71 20 22 6d 61 74 63 68 h_fregs..cr.er.=.check_eq."match
2ea0 5f 66 72 65 67 73 22 20 63 72 20 28 66 72 65 67 5f 61 72 72 2e 28 65 72 29 29 0a 0a 6c 65 74 20 _fregs".cr.(freg_arr.(er))..let.
2ec0 6e 61 6d 65 5f 6f 66 5f 6e 64 78 20 28 65 66 77 3a 20 65 5f 66 72 61 6d 65 77 6f 72 6b 29 20 28 name_of_ndx.(efw:.e_framework).(
2ee0 6e 64 78 3a 20 69 6e 74 29 3a 20 73 74 72 69 6e 67 20 3d 0a 20 20 6c 65 74 20 73 74 20 3d 20 65 ndx:.int):.string.=...let.st.=.e
2f00 66 77 2e 65 6c 66 2e 65 5f 73 79 6d 74 61 62 2e 28 6e 64 78 29 20 69 6e 0a 20 20 73 74 2e 73 74 fw.elf.e_symtab.(ndx).in...st.st
2f20 5f 6e 61 6d 65 20 5e 20 22 20 61 74 20 61 64 64 72 65 73 73 20 22 20 5e 20 28 73 74 72 69 6e 67 _name.^.".at.address.".^.(string
2f40 5f 6f 66 5f 69 6e 74 33 32 20 73 74 2e 73 74 5f 76 61 6c 75 65 29 0a 0a 28 2a 2a 20 46 69 6c 74 _of_int32.st.st_value)..(**.Filt
2f60 65 72 73 20 74 68 65 20 6c 6f 77 65 72 20 31 36 20 62 69 74 73 20 6f 66 20 61 6e 20 69 6e 74 33 ers.the.lower.16.bits.of.an.int3
2f80 32 2e 20 2a 29 0a 6c 65 74 20 6c 6f 77 3a 20 69 6e 74 33 32 20 2d 3e 20 69 6e 74 33 32 20 3d 20 2..*).let.low:.int32.->.int32.=.
2fa0 49 6e 74 33 32 2e 6c 6f 67 61 6e 64 20 30 78 30 30 30 30 66 66 66 66 6c 0a 0a 28 2a 2a 20 68 69 Int32.logand.0x0000ffffl..(**.hi
2fc0 67 68 5f 65 78 74 73 20 78 20 69 73 20 65 71 75 61 6c 20 74 6f 3a 0a 0a 20 20 20 20 2d 20 74 68 gh_exts.x.is.equal.to:......-.th
2fe0 65 20 31 36 20 68 69 67 68 20 62 69 74 73 20 6f 66 20 78 20 69 66 20 69 74 73 20 6c 6f 77 65 72 e.16.high.bits.of.x.if.its.lower
3000 20 31 36 20 62 69 74 73 20 66 6f 72 6d 20 61 20 70 6f 73 69 74 69 76 65 20 31 36 20 62 69 74 20 .16.bits.form.a.positive.16.bit.
3020 69 6e 74 65 67 65 72 0a 0a 20 20 20 20 2d 20 74 68 65 20 31 36 20 68 69 67 68 20 62 69 74 73 20 integer......-.the.16.high.bits.
3040 6f 66 20 78 20 70 6c 75 73 20 6f 6e 65 20 6f 74 68 65 72 77 69 73 65 0a 0a 20 20 20 20 54 68 69 of.x.plus.one.otherwise......Thi
3060 73 20 69 73 20 73 6f 20 74 68 61 74 3a 20 78 20 3d 3d 20 68 69 67 68 5f 65 78 74 73 20 78 20 2b s.is.so.that:.x.==.high_exts.x.+
3080 20 65 78 74 73 20 28 6c 6f 77 20 78 29 0a 2a 29 0a 6c 65 74 20 68 69 67 68 5f 65 78 74 73 20 28 .exts.(low.x).*).let.high_exts.(
30a0 78 3a 20 69 6e 74 33 32 29 3a 20 69 6e 74 33 32 20 3d 20 49 6e 74 33 32 2e 28 0a 20 20 69 66 20 x:.int32):.int32.=.Int32.(...if.
30c0 6c 6f 67 61 6e 64 20 78 20 30 78 30 30 30 30 38 30 30 30 6c 20 3d 20 30 6c 0a 20 20 74 68 65 6e logand.x.0x00008000l.=.0l...then
30e0 20 6c 6f 67 61 6e 64 20 78 20 30 78 66 66 66 66 30 30 30 30 6c 0a 20 20 65 6c 73 65 20 61 64 64 .logand.x.0xffff0000l...else.add
3100 20 30 78 30 30 30 31 30 30 30 30 6c 20 28 6c 6f 67 61 6e 64 20 78 20 30 78 66 66 66 66 30 30 30 .0x00010000l.(logand.x.0xffff000
3120 30 6c 29 0a 29 0a 0a 28 2a 2a 20 4d 61 74 63 68 65 73 20 61 20 43 6f 6d 70 43 65 72 74 20 63 6f 0l).)..(**.Matches.a.CompCert.co
3140 6e 73 74 61 6e 74 20 61 67 61 69 6e 73 74 20 61 6e 20 5b 69 6e 74 33 32 5d 2e 20 2a 29 0a 6c 65 nstant.against.an.[int32]..*).le
3160 74 20 6d 61 74 63 68 5f 63 73 74 73 20 28 63 63 3a 20 63 6f 6e 73 74 61 6e 74 29 20 28 65 63 3a t.match_csts.(cc:.constant).(ec:
3180 20 69 6e 74 33 32 29 20 28 66 66 77 3a 20 66 5f 66 72 61 6d 65 77 6f 72 6b 29 3a 20 66 5f 66 72 .int32).(ffw:.f_framework):.f_fr
31a0 61 6d 65 77 6f 72 6b 20 3d 0a 20 20 6c 65 74 20 73 66 77 20 3d 20 66 66 77 20 7c 2e 20 66 66 5f amework.=...let.sfw.=.ffw.|..ff_
31c0 73 66 20 69 6e 0a 20 20 6c 65 74 20 65 66 77 20 3d 20 66 66 77 20 7c 2e 20 66 66 5f 65 66 20 69 sf.in...let.efw.=.ffw.|..ff_ef.i
31e0 6e 0a 20 20 6d 61 74 63 68 20 63 63 20 77 69 74 68 0a 20 20 7c 20 43 69 6e 74 20 28 69 29 20 2d n...match.cc.with...|.Cint.(i).-
3200 3e 0a 20 20 20 20 20 20 63 68 65 63 6b 5f 65 71 20 22 6d 61 74 63 68 5f 63 73 74 73 20 43 69 6e >.......check_eq."match_csts.Cin
3220 74 22 20 65 63 20 28 7a 5f 69 6e 74 33 32 5f 6c 61 78 20 69 29 20 66 66 77 0a 20 20 7c 20 43 73 t".ec.(z_int32_lax.i).ffw...|.Cs
3240 79 6d 62 6f 6c 5f 6c 6f 77 20 28 69 64 65 6e 74 2c 20 69 29 20 2d 3e 0a 20 20 20 20 20 20 6c 65 ymbol_low.(ident,.i).->.......le
3260 74 20 63 61 6e 64 69 64 61 74 65 73 20 3d 0a 20 20 20 20 20 20 20 20 74 72 79 20 50 6f 73 4d 61 t.candidates.=.........try.PosMa
3280 70 2e 66 69 6e 64 20 69 64 65 6e 74 20 73 66 77 2e 69 64 65 6e 74 5f 74 6f 5f 73 79 6d 5f 6e 64 p.find.ident.sfw.ident_to_sym_nd
32a0 78 0a 20 20 20 20 20 20 20 20 77 69 74 68 20 4e 6f 74 5f 66 6f 75 6e 64 20 2d 3e 20 5b 5d 0a 20 x.........with.Not_found.->.[]..
32c0 20 20 20 20 20 69 6e 0a 20 20 20 20 20 20 6c 65 74 20 76 61 64 64 72 73 20 3d 0a 20 20 20 20 20 .....in.......let.vaddrs.=......
32e0 20 20 20 4c 69 73 74 2e 66 69 6c 74 65 72 0a 20 20 20 20 20 20 20 20 20 20 28 66 75 6e 20 6e 64 ...List.filter...........(fun.nd
3300 78 20 2d 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 6c 65 74 20 69 64 65 6e 74 5f 76 61 64 64 72 x.->.............let.ident_vaddr
3320 20 3d 20 65 66 77 2e 65 6c 66 2e 65 5f 73 79 6d 74 61 62 2e 28 6e 64 78 29 2e 73 74 5f 76 61 6c .=.efw.elf.e_symtab.(ndx).st_val
3340 75 65 20 69 6e 0a 20 20 20 20 20 20 20 20 20 20 20 20 49 6e 74 33 32 2e 28 6c 6f 77 20 28 61 64 ue.in.............Int32.(low.(ad
3360 64 20 69 64 65 6e 74 5f 76 61 64 64 72 20 28 7a 5f 69 6e 74 33 32 5f 6c 61 78 20 69 29 29 20 3d d.ident_vaddr.(z_int32_lax.i)).=
3380 20 6c 6f 77 20 65 63 29 0a 20 20 20 20 20 20 20 20 20 20 29 0a 20 20 20 20 20 20 20 20 20 20 63 .low.ec)...........)...........c
33a0 61 6e 64 69 64 61 74 65 73 0a 20 20 20 20 20 20 69 6e 0a 20 20 20 20 20 20 62 65 67 69 6e 20 6d andidates.......in.......begin.m
33c0 61 74 63 68 20 76 61 64 64 72 73 20 77 69 74 68 0a 20 20 20 20 20 20 7c 20 5b 5d 20 2d 3e 0a 20 atch.vaddrs.with.......|.[].->..
33e0 20 20 20 20 20 20 20 20 20 6c 65 74 20 73 79 6d 5f 6e 61 6d 65 73 20 3d 20 4c 69 73 74 2e 6d 61 .........let.sym_names.=.List.ma
3400 70 20 28 6e 61 6d 65 5f 6f 66 5f 6e 64 78 20 65 66 77 29 20 63 61 6e 64 69 64 61 74 65 73 20 69 p.(name_of_ndx.efw).candidates.i
3420 6e 0a 20 20 20 20 20 20 20 20 20 20 28 66 66 5f 65 66 20 5e 25 3d 0a 20 20 20 20 20 20 20 20 20 n...........(ff_ef.^%=..........
3440 20 20 20 20 20 28 61 64 64 5f 6c 6f 67 20 28 45 52 52 4f 52 28 22 43 73 79 6d 62 6f 6c 5f 6c 6f .....(add_log.(ERROR("Csymbol_lo
3460 77 20 22 20 5e 20 73 74 72 69 6e 67 5f 6f 66 5f 6c 69 73 74 20 69 64 20 22 2c 20 22 20 73 79 6d w.".^.string_of_list.id.",.".sym
3480 5f 6e 61 6d 65 73 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 29 20 66 66 77 0a 20 20 20 20 20 20 _names)))...........).ffw.......
34a0 7c 20 5f 20 20 2d 3e 0a 20 20 20 20 20 20 20 20 20 20 69 66 20 63 61 6e 64 69 64 61 74 65 73 20 |._..->...........if.candidates.
34c0 3d 20 76 61 64 64 72 73 0a 20 20 20 20 20 20 20 20 20 20 74 68 65 6e 20 66 66 77 0a 20 20 20 20 =.vaddrs...........then.ffw.....
34e0 20 20 20 20 20 20 65 6c 73 65 20 28 0a 20 20 20 20 20 20 20 20 20 20 20 20 66 66 77 0a 20 20 20 ......else.(.............ffw....
3500 20 20 20 20 20 20 20 20 20 3e 3e 3e 20 28 28 66 66 5f 73 66 20 7c 2d 2d 20 69 64 65 6e 74 5f 74 .........>>>.((ff_sf.|--.ident_t
3520 6f 5f 73 79 6d 5f 6e 64 78 29 20 5e 25 3d 20 28 50 6f 73 4d 61 70 2e 61 64 64 20 69 64 65 6e 74 o_sym_ndx).^%=.(PosMap.add.ident
3540 20 76 61 64 64 72 73 29 29 0a 20 20 20 20 20 20 20 20 20 20 29 0a 20 20 20 20 20 20 65 6e 64 0a .vaddrs))...........).......end.
3560 20 20 7c 20 43 73 79 6d 62 6f 6c 5f 68 69 67 68 20 28 69 64 65 6e 74 2c 20 69 29 20 2d 3e 0a 20 ..|.Csymbol_high.(ident,.i).->..
3580 20 20 20 20 20 28 2a 20 49 6e 20 74 68 69 73 20 63 61 73 65 2c 20 65 63 20 69 73 20 30 78 30 30 .....(*.In.this.case,.ec.is.0x00
35a0 30 30 58 58 58 58 20 73 74 61 6e 64 69 6e 67 20 66 6f 72 20 58 58 58 58 30 30 30 30 20 2a 29 0a 00XXXX.standing.for.XXXX0000.*).
35c0 20 20 20 20 20 20 6c 65 74 20 63 61 6e 64 69 64 61 74 65 73 20 3d 0a 20 20 20 20 20 20 20 20 74 ......let.candidates.=.........t
35e0 72 79 20 50 6f 73 4d 61 70 2e 66 69 6e 64 20 69 64 65 6e 74 20 73 66 77 2e 69 64 65 6e 74 5f 74 ry.PosMap.find.ident.sfw.ident_t
3600 6f 5f 73 79 6d 5f 6e 64 78 0a 20 20 20 20 20 20 20 20 77 69 74 68 20 4e 6f 74 5f 66 6f 75 6e 64 o_sym_ndx.........with.Not_found
3620 20 2d 3e 20 5b 5d 0a 20 20 20 20 20 20 69 6e 0a 20 20 20 20 20 20 6c 65 74 20 76 61 64 64 72 73 .->.[].......in.......let.vaddrs
3640 20 3d 0a 20 20 20 20 20 20 20 20 4c 69 73 74 2e 66 69 6c 74 65 72 0a 20 20 20 20 20 20 20 20 20 .=.........List.filter..........
3660 20 28 66 75 6e 20 6e 64 78 20 2d 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 6c 65 74 20 69 64 65 .(fun.ndx.->.............let.ide
3680 6e 74 5f 76 61 64 64 72 20 3d 20 65 66 77 2e 65 6c 66 2e 65 5f 73 79 6d 74 61 62 2e 28 6e 64 78 nt_vaddr.=.efw.elf.e_symtab.(ndx
36a0 29 2e 73 74 5f 76 61 6c 75 65 20 69 6e 0a 20 20 20 20 20 20 20 20 20 20 20 20 49 6e 74 33 32 2e ).st_value.in.............Int32.
36c0 28 68 69 67 68 5f 65 78 74 73 20 28 61 64 64 20 69 64 65 6e 74 5f 76 61 64 64 72 20 28 7a 5f 69 (high_exts.(add.ident_vaddr.(z_i
36e0 6e 74 33 32 5f 6c 61 78 20 69 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 nt32_lax.i))....................
3700 3d 20 73 68 69 66 74 5f 6c 65 66 74 20 65 63 20 31 36 29 29 0a 20 20 20 20 20 20 20 20 20 20 63 =.shift_left.ec.16))...........c
3720 61 6e 64 69 64 61 74 65 73 20 69 6e 0a 20 20 20 20 20 20 62 65 67 69 6e 20 6d 61 74 63 68 20 76 andidates.in.......begin.match.v
3740 61 64 64 72 73 20 77 69 74 68 0a 20 20 20 20 20 20 7c 20 5b 5d 20 2d 3e 0a 20 20 20 20 20 20 20 addrs.with.......|.[].->........
3760 20 20 20 6c 65 74 20 73 79 6d 5f 6e 61 6d 65 73 20 3d 0a 20 20 20 20 20 20 20 20 20 20 20 20 4c ...let.sym_names.=.............L
3780 69 73 74 2e 6d 61 70 20 28 6e 61 6d 65 5f 6f 66 5f 6e 64 78 20 65 66 77 29 20 63 61 6e 64 69 64 ist.map.(name_of_ndx.efw).candid
37a0 61 74 65 73 20 69 6e 0a 20 20 20 20 20 20 20 20 20 20 28 66 66 5f 65 66 20 5e 25 3d 0a 20 20 20 ates.in...........(ff_ef.^%=....
37c0 20 20 20 20 20 20 20 20 20 20 20 28 61 64 64 5f 6c 6f 67 20 28 45 52 52 4f 52 28 22 43 73 79 6d ...........(add_log.(ERROR("Csym
37e0 62 6f 6c 5f 68 69 67 68 20 22 20 5e 20 73 74 72 69 6e 67 5f 6f 66 5f 6c 69 73 74 20 69 64 20 22 bol_high.".^.string_of_list.id."
3800 2c 20 22 20 73 79 6d 5f 6e 61 6d 65 73 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 29 20 66 66 77 ,.".sym_names)))...........).ffw
3820 0a 20 20 20 20 20 20 7c 20 5f 20 20 2d 3e 0a 20 20 20 20 20 20 20 20 20 20 69 66 20 63 61 6e 64 .......|._..->...........if.cand
3840 69 64 61 74 65 73 20 3d 20 76 61 64 64 72 73 0a 20 20 20 20 20 20 20 20 20 20 74 68 65 6e 20 66 idates.=.vaddrs...........then.f
3860 66 77 0a 20 20 20 20 20 20 20 20 20 20 65 6c 73 65 20 28 28 66 66 5f 73 66 20 7c 2d 2d 20 69 64 fw...........else.((ff_sf.|--.id
3880 65 6e 74 5f 74 6f 5f 73 79 6d 5f 6e 64 78 29 20 5e 25 3d 20 28 50 6f 73 4d 61 70 2e 61 64 64 20 ent_to_sym_ndx).^%=.(PosMap.add.
38a0 69 64 65 6e 74 20 76 61 64 64 72 73 29 29 20 66 66 77 0a 20 20 20 20 20 20 65 6e 64 0a 20 20 7c ident.vaddrs)).ffw.......end...|
38c0 20 43 73 79 6d 62 6f 6c 5f 73 64 61 20 28 69 64 65 6e 74 2c 20 69 29 20 2d 3e 0a 20 20 20 20 20 .Csymbol_sda.(ident,.i).->......
38e0 20 66 66 77 0a 20 20 20 20 20 20 3e 3e 3e 20 66 66 5f 65 66 20 5e 25 3d 20 28 61 64 64 5f 6c 6f .ffw.......>>>.ff_ef.^%=.(add_lo
3900 67 20 28 45 52 52 4f 52 28 22 54 4f 44 4f 22 29 29 29 0a 0a 6c 65 74 20 6d 61 74 63 68 5f 7a 5f g.(ERROR("TODO")))..let.match_z_
3920 69 6e 74 33 32 20 28 63 7a 3a 20 63 6f 71 5f 5a 29 20 28 65 69 3a 20 69 6e 74 33 32 29 20 3d 0a int32.(cz:.coq_Z).(ei:.int32).=.
3940 20 20 63 68 65 63 6b 5f 65 71 20 22 6d 61 74 63 68 5f 7a 5f 69 6e 74 33 32 22 20 28 7a 5f 69 6e ..check_eq."match_z_int32".(z_in
3960 74 33 32 20 63 7a 29 20 65 69 0a 0a 6c 65 74 20 6d 61 74 63 68 5f 7a 5f 69 6e 74 20 28 63 7a 3a t32.cz).ei..let.match_z_int.(cz:
3980 20 63 6f 71 5f 5a 29 20 28 65 69 3a 20 69 6e 74 29 20 3d 0a 20 20 63 68 65 63 6b 5f 65 71 20 22 .coq_Z).(ei:.int).=...check_eq."
39a0 6d 61 74 63 68 5f 7a 5f 69 6e 74 22 20 28 7a 5f 69 6e 74 33 32 20 63 7a 29 20 28 53 61 66 65 33 match_z_int".(z_int32.cz).(Safe3
39c0 32 2e 6f 66 5f 69 6e 74 20 65 69 29 0a 0a 28 2a 20 5b 6d 5d 20 69 73 20 69 6e 74 65 72 70 72 65 2.of_int.ei)..(*.[m].is.interpre
39e0 74 65 64 20 61 73 20 61 20 62 69 74 6d 61 73 6b 2c 20 61 6e 64 20 63 68 65 63 6b 65 64 20 61 67 ted.as.a.bitmask,.and.checked.ag
3a00 61 69 6e 73 74 20 5b 65 69 5d 2e 20 2a 29 0a 6c 65 74 20 6d 61 74 63 68 5f 6d 61 73 6b 20 28 6d ainst.[ei]..*).let.match_mask.(m
3a20 3a 20 63 6f 71 5f 5a 29 20 28 65 69 3a 20 69 6e 74 33 32 29 20 3d 0a 20 20 63 68 65 63 6b 5f 65 :.coq_Z).(ei:.int32).=...check_e
3a40 71 0a 20 20 20 20 28 22 6d 61 74 63 68 5f 6d 61 73 6b 20 22 20 5e 20 73 74 72 69 6e 67 5f 6f 66 q.....("match_mask.".^.string_of
3a60 5f 69 6e 74 33 32 20 28 7a 5f 69 6e 74 33 32 5f 6c 61 78 20 6d 29 20 5e 20 22 20 61 6e 64 20 22 _int32.(z_int32_lax.m).^.".and."
3a80 20 5e 0a 20 20 20 20 20 20 20 20 73 74 72 69 6e 67 5f 6f 66 5f 69 6e 74 33 32 20 65 69 29 0a 20 .^.........string_of_int32.ei)..
3aa0 20 20 20 28 7a 5f 69 6e 74 33 32 5f 6c 61 78 20 6d 29 20 65 69 0a 0a 28 2a 2a 20 43 68 65 63 6b ...(z_int32_lax.m).ei..(**.Check
3ac0 73 20 74 68 61 74 20 74 68 65 20 73 70 65 63 69 61 6c 20 72 65 67 69 73 74 65 72 20 72 65 66 65 s.that.the.special.register.refe
3ae0 72 72 65 64 20 74 6f 20 69 6e 20 5b 73 70 72 5d 20 69 73 20 5b 72 5d 2e 20 2a 29 0a 6c 65 74 20 rred.to.in.[spr].is.[r]..*).let.
3b00 6d 61 74 63 68 5f 73 70 72 20 28 73 74 72 3a 20 73 74 72 69 6e 67 29 20 28 72 3a 20 69 6e 74 29 match_spr.(str:.string).(r:.int)
3b20 20 28 73 70 72 3a 20 62 69 74 73 74 72 69 6e 67 29 0a 20 20 20 20 3a 20 66 5f 66 72 61 6d 65 77 .(spr:.bitstring).....:.f_framew
3b40 6f 72 6b 20 2d 3e 20 66 5f 66 72 61 6d 65 77 6f 72 6b 20 3d 0a 20 20 62 69 74 6d 61 74 63 68 20 ork.->.f_framework.=...bitmatch.
3b60 73 70 72 20 77 69 74 68 0a 20 20 7c 20 7b 20 76 3a 35 3b 20 30 3a 35 20 7d 20 77 68 65 6e 20 76 spr.with...|.{.v:5;.0:5.}.when.v
3b80 20 3d 20 72 20 2d 3e 20 69 64 0a 20 20 7c 20 7b 20 5f 20 7d 20 20 20 20 20 20 20 20 20 20 20 20 .=.r.->.id...|.{._.}............
3ba0 20 20 20 20 20 20 20 2d 3e 20 66 66 5f 65 66 20 5e 25 3d 20 28 61 64 64 5f 6c 6f 67 20 28 45 52 .......->.ff_ef.^%=.(add_log.(ER
3bc0 52 4f 52 28 73 74 72 29 29 29 0a 0a 6c 65 74 20 6d 61 74 63 68 5f 78 65 72 20 20 20 3d 20 6d 61 ROR(str)))..let.match_xer...=.ma
3be0 74 63 68 5f 73 70 72 20 22 6d 61 74 63 68 5f 78 65 72 22 20 31 0a 6c 65 74 20 6d 61 74 63 68 5f tch_spr."match_xer".1.let.match_
3c00 6c 72 20 20 20 20 3d 20 6d 61 74 63 68 5f 73 70 72 20 22 6d 61 74 63 68 5f 6c 72 22 20 20 38 0a lr....=.match_spr."match_lr"..8.
3c20 6c 65 74 20 6d 61 74 63 68 5f 63 74 72 20 20 20 3d 20 6d 61 74 63 68 5f 73 70 72 20 22 6d 61 74 let.match_ctr...=.match_spr."mat
3c40 63 68 5f 63 74 72 22 20 39 0a 0a 28 2a 2a 20 52 65 61 64 20 61 20 6e 2d 62 69 74 73 20 62 69 74 ch_ctr".9..(**.Read.a.n-bits.bit
3c60 73 74 72 69 6e 67 20 61 73 20 61 20 73 69 67 6e 65 64 20 69 6e 74 65 67 65 72 2c 20 74 77 6f 27 string.as.a.signed.integer,.two'
3c80 73 20 63 6f 6d 70 6c 65 6d 65 6e 74 20 72 65 70 72 65 73 65 6e 74 61 74 69 6f 6e 0a 20 20 20 20 s.complement.representation.....
3ca0 28 6e 20 3c 20 33 32 29 2e 0a 2a 29 0a 6c 65 74 20 65 78 74 73 20 28 62 73 3a 20 62 69 74 73 74 (n.<.32)..*).let.exts.(bs:.bitst
3cc0 72 69 6e 67 29 3a 20 69 6e 74 33 32 20 3d 0a 20 20 6c 65 74 20 73 69 67 6e 69 66 5f 62 69 74 73 ring):.int32.=...let.signif_bits
3ce0 20 3d 20 42 69 74 73 74 72 69 6e 67 2e 62 69 74 73 74 72 69 6e 67 5f 6c 65 6e 67 74 68 20 62 73 .=.Bitstring.bitstring_length.bs
3d00 20 2d 20 31 20 69 6e 0a 20 20 62 69 74 6d 61 74 63 68 20 62 73 20 77 69 74 68 0a 20 20 7c 20 7b .-.1.in...bitmatch.bs.with...|.{
3d20 20 73 69 67 6e 20 3a 20 31 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 0a 20 20 20 20 .sign.:.1.................;.....
3d40 20 20 72 65 73 74 20 3a 20 73 69 67 6e 69 66 5f 62 69 74 73 20 3a 20 69 6e 74 20 7d 20 2d 3e 0a ..rest.:.signif_bits.:.int.}.->.
3d60 20 20 20 20 20 20 49 6e 74 36 34 2e 28 0a 20 20 20 20 20 20 20 20 74 6f 5f 69 6e 74 33 32 20 28 ......Int64.(.........to_int32.(
3d80 0a 20 20 20 20 20 20 20 20 20 20 69 66 20 73 69 67 6e 0a 20 20 20 20 20 20 20 20 20 20 74 68 65 ...........if.sign...........the
3da0 6e 20 6c 6f 67 6f 72 20 72 65 73 74 20 28 6c 6f 67 6e 6f 74 20 28 73 75 62 20 28 73 68 69 66 74 n.logor.rest.(lognot.(sub.(shift
3dc0 5f 6c 65 66 74 20 6f 6e 65 20 73 69 67 6e 69 66 5f 62 69 74 73 29 20 6f 6e 65 29 29 0a 20 20 20 _left.one.signif_bits).one))....
3de0 20 20 20 20 20 20 20 65 6c 73 65 20 72 65 73 74 0a 20 20 20 20 20 20 20 20 29 0a 20 20 20 20 20 .......else.rest.........)......
3e00 20 29 0a 0a 28 2a 2a 20 43 72 65 61 74 65 73 20 61 20 62 69 74 6d 61 73 6b 20 66 72 6f 6d 20 62 .)..(**.Creates.a.bitmask.from.b
3e20 69 74 73 20 6d 62 20 74 6f 20 6d 65 2c 20 61 63 63 6f 72 64 69 6e 67 20 74 6f 20 74 68 65 20 73 its.mb.to.me,.according.to.the.s
3e40 70 65 63 69 66 69 63 61 74 69 6f 6e 20 69 6e 0a 20 20 20 20 22 34 2e 32 2e 31 2e 34 20 49 6e 74 pecification.in....."4.2.1.4.Int
3e60 65 67 65 72 20 52 6f 74 61 74 65 20 61 6e 64 20 53 68 69 66 74 20 49 6e 73 74 72 75 63 74 69 6f eger.Rotate.and.Shift.Instructio
3e80 6e 73 22 20 6f 66 20 74 68 65 20 50 6f 77 65 72 50 43 20 6d 61 6e 75 61 6c 2e 0a 2a 29 0a 6c 65 ns".of.the.PowerPC.manual..*).le
3ea0 74 20 72 65 63 20 62 69 74 6d 61 73 6b 20 6d 62 20 6d 65 20 3d 0a 20 20 61 73 73 65 72 74 20 28 t.rec.bitmask.mb.me.=...assert.(
3ec0 30 20 3c 3d 20 6d 62 29 3b 20 61 73 73 65 72 74 20 28 30 20 3c 3d 20 6d 65 29 3b 20 61 73 73 65 0.<=.mb);.assert.(0.<=.me);.asse
3ee0 72 74 20 28 6d 62 20 3c 20 33 32 29 3b 20 61 73 73 65 72 74 20 28 6d 65 20 3c 20 33 32 29 3b 0a rt.(mb.<.32);.assert.(me.<.32);.
3f00 20 20 69 66 20 28 6d 62 2c 20 6d 65 29 20 3d 20 28 30 2c 20 33 31 29 0a 20 20 74 68 65 6e 20 2d ..if.(mb,.me).=.(0,.31)...then.-
3f20 31 6c 20 28 2a 20 74 68 69 73 20 63 61 73 65 20 64 6f 65 73 20 6e 6f 74 20 63 6f 6d 70 75 74 65 1l.(*.this.case.does.not.compute
3f40 20 63 6f 72 72 65 63 74 6c 79 20 6f 74 68 65 72 77 69 73 65 20 2a 29 0a 20 20 65 6c 73 65 20 69 .correctly.otherwise.*)...else.i
3f60 66 20 6d 62 20 3c 3d 20 6d 65 0a 20 20 28 2a 20 30 20 2e 2e 2e 20 6d 62 20 2e 2e 2e 20 6d 65 20 f.mb.<=.me...(*.0.....mb.....me.
3f80 2e 2e 2e 20 33 31 0a 20 20 20 20 20 30 20 30 20 30 20 31 20 31 20 31 20 31 20 31 20 30 20 30 20 ....31......0.0.0.1.1.1.1.1.0.0.
3fa0 30 0a 20 20 2a 29 0a 20 20 74 68 65 6e 20 49 6e 74 33 32 2e 28 73 68 69 66 74 5f 6c 65 66 74 0a 0...*)...then.Int32.(shift_left.
3fc0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 75 62 20 28 73 68 69 66 74 5f 6c 65 66 74 ................(sub.(shift_left
3fe0 20 31 6c 20 28 6d 65 20 2d 20 6d 62 20 2b 20 31 29 29 20 31 6c 29 0a 20 20 20 20 20 20 20 20 20 .1l.(me.-.mb.+.1)).1l)..........
4000 20 20 20 20 20 20 20 28 33 31 20 2d 20 6d 65 29 0a 20 20 29 0a 20 20 28 2a 0a 20 20 20 20 30 20 .......(31.-.me)...)...(*.....0.
4020 2e 2e 2e 20 6d 65 20 2e 2e 2e 20 6d 62 20 2e 2e 2e 20 33 31 0a 20 20 20 20 31 20 31 20 31 20 31 ....me.....mb.....31.....1.1.1.1
4040 20 30 20 30 20 30 20 31 20 31 20 31 20 31 0a 20 20 20 20 3d 3d 0a 20 20 20 20 31 20 31 20 31 20 .0.0.0.1.1.1.1.....==.....1.1.1.
4060 31 20 31 20 31 20 31 20 31 20 31 20 31 20 31 20 20 20 20 2d 31 6c 0a 20 20 20 20 2d 0a 20 20 20 1.1.1.1.1.1.1.1....-1l.....-....
4080 20 30 20 30 20 30 20 30 20 31 20 31 20 31 20 30 20 30 20 30 20 30 20 20 20 20 62 69 74 6d 61 73 .0.0.0.0.1.1.1.0.0.0.0....bitmas
40a0 6b 20 28 6d 65 20 2b 20 31 29 20 28 6d 62 20 2d 20 31 29 0a 20 20 2a 29 0a 20 20 65 6c 73 65 20 k.(me.+.1).(mb.-.1)...*)...else.
40c0 69 66 20 6d 62 20 3d 20 6d 65 20 2b 20 31 0a 20 20 74 68 65 6e 20 28 2d 31 6c 29 20 28 2a 20 74 if.mb.=.me.+.1...then.(-1l).(*.t
40e0 68 69 73 20 6e 65 65 64 73 20 73 70 65 63 69 61 6c 20 68 61 6e 64 6c 69 6e 67 20 2a 29 0a 20 20 his.needs.special.handling.*)...
4100 65 6c 73 65 20 49 6e 74 33 32 2e 28 73 75 62 20 28 2d 31 6c 29 20 28 62 69 74 6d 61 73 6b 20 28 else.Int32.(sub.(-1l).(bitmask.(
4120 6d 65 20 2b 20 31 29 20 28 6d 62 20 2d 20 31 29 29 29 0a 0a 28 2a 2a 20 43 68 65 63 6b 73 20 74 me.+.1).(mb.-.1)))..(**.Checks.t
4140 68 61 74 20 61 20 6c 61 62 65 6c 20 64 69 64 20 6e 6f 74 20 6f 63 63 75 72 20 74 77 69 63 65 20 hat.a.label.did.not.occur.twice.
4160 69 6e 20 74 68 65 20 73 61 6d 65 20 66 75 6e 63 74 69 6f 6e 2e 20 2a 29 0a 6c 65 74 20 63 68 65 in.the.same.function..*).let.che
4180 63 6b 5f 6c 61 62 65 6c 5f 75 6e 69 63 69 74 79 20 66 66 77 20 3d 0a 20 20 6c 65 74 20 72 65 63 ck_label_unicity.ffw.=...let.rec
41a0 20 63 68 65 63 6b 5f 6c 61 62 65 6c 5f 75 6e 69 63 69 74 79 5f 61 75 78 20 6c 20 66 66 77 20 3d .check_label_unicity_aux.l.ffw.=
41c0 0a 20 20 20 20 6d 61 74 63 68 20 6c 20 77 69 74 68 0a 20 20 20 20 7c 20 5b 5d 20 20 20 2d 3e 20 .....match.l.with.....|.[]...->.
41e0 66 66 77 0a 20 20 20 20 7c 20 68 3a 3a 74 20 2d 3e 0a 20 20 20 20 20 20 20 20 66 66 77 0a 20 20 ffw.....|.h::t.->.........ffw...
4200 20 20 20 20 20 20 3e 3e 3e 20 28 0a 20 20 20 20 20 20 20 20 20 20 69 66 20 4c 69 73 74 2e 6d 65 ......>>>.(...........if.List.me
4220 6d 20 68 20 74 0a 20 20 20 20 20 20 20 20 20 20 74 68 65 6e 20 28 0a 20 20 20 20 20 20 20 20 20 m.h.t...........then.(..........
4240 20 20 20 66 66 5f 65 66 20 5e 25 3d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 61 64 64 5f ...ff_ef.^%=...............(add_
4260 6c 6f 67 20 28 45 52 52 4f 52 28 22 44 75 70 6c 69 63 61 74 65 20 6c 61 62 65 6c 3a 20 22 20 5e log.(ERROR("Duplicate.label:.".^
4280 20 73 74 72 69 6e 67 5f 6f 66 5f 70 6f 73 69 74 69 76 65 20 68 29 29 29 0a 20 20 20 20 20 20 20 .string_of_positive.h)))........
42a0 20 20 20 29 0a 20 20 20 20 20 20 20 20 20 20 65 6c 73 65 20 69 64 0a 20 20 20 20 20 20 20 20 29 ...)...........else.id.........)
42c0 0a 20 20 20 20 20 20 20 20 3e 3e 3e 20 63 68 65 63 6b 5f 6c 61 62 65 6c 5f 75 6e 69 63 69 74 79 .........>>>.check_label_unicity
42e0 5f 61 75 78 20 74 0a 20 20 69 6e 0a 20 20 63 68 65 63 6b 5f 6c 61 62 65 6c 5f 75 6e 69 63 69 74 _aux.t...in...check_label_unicit
4300 79 5f 61 75 78 20 66 66 77 2e 6c 61 62 65 6c 5f 6c 69 73 74 20 66 66 77 0a 0a 28 2a 2a 20 43 68 y_aux.ffw.label_list.ffw..(**.Ch
4320 65 63 6b 73 20 74 68 61 74 20 61 6c 6c 20 74 68 65 20 6c 61 62 65 6c 73 20 74 68 61 74 20 68 61 ecks.that.all.the.labels.that.ha
4340 76 65 20 62 65 65 6e 20 72 65 66 65 72 72 65 64 20 74 6f 20 69 6e 20 69 6e 73 74 72 75 63 74 69 ve.been.referred.to.in.instructi
4360 6f 6e 73 0a 20 20 20 20 61 63 74 75 61 6c 6c 79 20 61 70 70 65 61 72 20 69 6e 20 74 68 65 20 63 ons.....actually.appear.in.the.c
4380 6f 64 65 2e 20 2a 29 0a 6c 65 74 20 63 68 65 63 6b 5f 6c 61 62 65 6c 5f 65 78 69 73 74 65 6e 63 ode..*).let.check_label_existenc
43a0 65 20 66 66 77 20 3d 0a 20 20 50 6f 73 4d 61 70 2e 66 6f 6c 64 0a 20 20 20 20 28 66 75 6e 20 6b e.ffw.=...PosMap.fold.....(fun.k
43c0 20 76 20 2d 3e 0a 20 20 20 20 20 20 69 66 20 4c 69 73 74 2e 6d 65 6d 20 6b 20 66 66 77 2e 6c 61 .v.->.......if.List.mem.k.ffw.la
43e0 62 65 6c 5f 6c 69 73 74 0a 20 20 20 20 20 20 74 68 65 6e 20 69 64 0a 20 20 20 20 20 20 65 6c 73 bel_list.......then.id.......els
4400 65 20 28 0a 20 20 20 20 20 20 20 20 66 66 5f 65 66 20 5e 25 3d 0a 20 20 20 20 20 20 20 20 20 20 e.(.........ff_ef.^%=...........
4420 28 61 64 64 5f 6c 6f 67 20 28 45 52 52 4f 52 28 22 4d 69 73 73 69 6e 67 20 6c 61 62 65 6c 3a 20 (add_log.(ERROR("Missing.label:.
4440 22 20 5e 20 73 74 72 69 6e 67 5f 6f 66 5f 70 6f 73 69 74 69 76 65 20 6b 29 29 29 0a 20 20 20 20 ".^.string_of_positive.k))).....
4460 20 20 29 0a 20 20 20 20 29 0a 20 20 20 20 66 66 77 2e 6c 61 62 65 6c 5f 74 6f 5f 76 61 64 64 72 ..).....).....ffw.label_to_vaddr
4480 0a 20 20 20 20 66 66 77 0a 0a 28 2a 2a 20 4d 61 74 63 68 65 73 20 74 68 65 20 73 65 67 6d 65 6e .....ffw..(**.Matches.the.segmen
44a0 74 20 61 74 20 76 69 72 74 75 61 6c 20 61 64 64 72 65 73 73 20 5b 76 61 64 64 72 5d 20 77 69 74 t.at.virtual.address.[vaddr].wit
44c0 68 20 74 68 65 20 6a 75 6d 70 74 61 62 6c 65 20 65 78 70 65 63 74 65 64 0a 20 20 20 20 66 72 6f h.the.jumptable.expected.....fro
44e0 6d 20 6c 61 62 65 6c 20 6c 69 73 74 20 5b 6c 62 6c 6c 69 73 74 5d 2e 20 54 68 65 6e 20 63 68 65 m.label.list.[lbllist]..Then.che
4500 63 6b 73 20 77 68 65 74 68 65 72 20 74 68 65 20 6d 61 74 63 68 65 64 20 63 68 75 6e 6b 20 6f 66 cks.whether.the.matched.chunk.of
4520 20 74 68 65 20 63 6f 64 65 0a 20 20 20 20 68 61 64 20 74 68 65 20 65 78 70 65 63 74 65 64 20 5b .the.code.....had.the.expected.[
4540 73 69 7a 65 5d 2e 0a 2a 29 0a 6c 65 74 20 72 65 63 20 6d 61 74 63 68 5f 6a 6d 70 74 62 6c 20 6c size]..*).let.rec.match_jmptbl.l
4560 62 6c 6c 69 73 74 20 76 61 64 64 72 20 73 69 7a 65 20 66 66 77 20 3d 0a 20 20 6c 65 74 20 61 74 bllist.vaddr.size.ffw.=...let.at
4580 6f 6d 20 3d 20 48 61 73 68 74 62 6c 2e 66 69 6e 64 20 66 66 77 2e 73 66 2e 61 74 6f 6d 73 20 66 om.=.Hashtbl.find.ffw.sf.atoms.f
45a0 66 77 2e 74 68 69 73 5f 69 64 65 6e 74 20 69 6e 0a 20 20 6c 65 74 20 6a 6d 70 74 62 6c 5f 73 65 fw.this_ident.in...let.jmptbl_se
45c0 63 74 69 6f 6e 20 3d 0a 20 20 20 20 6d 61 74 63 68 20 61 74 6f 6d 2e 61 5f 73 65 63 74 69 6f 6e ction.=.....match.atom.a_section
45e0 73 20 77 69 74 68 0a 20 20 20 20 7c 20 5b 5f 3b 20 5f 3b 20 6a 5d 20 2d 3e 20 6a 0a 20 20 20 20 s.with.....|.[_;._;.j].->.j.....
4600 7c 20 5f 20 2d 3e 20 53 65 63 74 69 6f 6e 5f 6a 75 6d 70 74 61 62 6c 65 0a 20 20 69 6e 0a 20 20 |._.->.Section_jumptable...in...
4620 6c 65 74 20 72 65 63 20 6d 61 74 63 68 5f 6a 6d 70 74 62 6c 5f 61 75 78 20 6c 62 6c 6c 69 73 74 let.rec.match_jmptbl_aux.lbllist
4640 20 62 73 20 66 66 77 20 3d 0a 20 20 20 20 6d 61 74 63 68 20 6c 62 6c 6c 69 73 74 20 77 69 74 68 .bs.ffw.=.....match.lbllist.with
4660 0a 20 20 20 20 7c 20 5b 5d 20 2d 3e 20 4f 4b 20 66 66 77 0a 20 20 20 20 7c 20 6c 62 6c 20 3a 3a .....|.[].->.OK.ffw.....|.lbl.::
4680 20 6c 62 6c 73 20 2d 3e 20 28 0a 20 20 20 20 20 20 62 69 74 6d 61 74 63 68 20 62 73 20 77 69 74 .lbls.->.(.......bitmatch.bs.wit
46a0 68 0a 20 20 20 20 20 20 7c 20 7b 20 76 61 64 64 72 20 3a 20 33 32 20 3a 20 69 6e 74 3b 0a 20 20 h.......|.{.vaddr.:.32.:.int;...
46c0 20 20 20 20 20 20 20 20 72 65 73 74 20 3a 20 2d 31 20 3a 20 62 69 74 73 74 72 69 6e 67 20 7d 20 ........rest.:.-1.:.bitstring.}.
46e0 2d 3e 0a 20 20 20 20 20 20 20 20 20 20 66 66 77 0a 20 20 20 20 20 20 20 20 20 20 3e 3e 3e 20 6c ->...........ffw...........>>>.l
4700 62 6c 6d 61 70 5f 75 6e 69 66 79 20 6c 62 6c 20 76 61 64 64 72 0a 20 20 20 20 20 20 20 20 20 20 blmap_unify.lbl.vaddr...........
4720 3e 3e 3d 20 6d 61 74 63 68 5f 6a 6d 70 74 62 6c 5f 61 75 78 20 6c 62 6c 73 20 72 65 73 74 0a 20 >>=.match_jmptbl_aux.lbls.rest..
4740 20 20 20 20 20 7c 20 7b 20 5f 20 7d 20 2d 3e 0a 20 20 20 20 20 20 20 20 20 20 70 72 69 6e 74 5f .....|.{._.}.->...........print_
4760 65 6e 64 6c 69 6e 65 20 22 49 6c 6c 2d 66 6f 72 6d 65 64 20 6a 75 6d 70 20 74 61 62 6c 65 22 3b endline."Ill-formed.jump.table";
4780 0a 20 20 20 20 20 20 20 20 20 20 45 52 52 28 22 49 6c 6c 2d 66 6f 72 6d 65 64 20 6a 75 6d 70 20 ...........ERR("Ill-formed.jump.
47a0 74 61 62 6c 65 22 29 0a 20 20 20 20 29 0a 20 20 69 6e 0a 20 20 6c 65 74 20 65 6c 66 20 3d 20 66 table").....)...in...let.elf.=.f
47c0 66 77 2e 73 66 2e 65 66 2e 65 6c 66 20 69 6e 0a 20 20 6c 65 74 20 63 75 72 5f 73 79 6d 5f 6e 64 fw.sf.ef.elf.in...let.cur_sym_nd
47e0 78 20 3d 20 65 6c 66 2e 65 5f 73 79 6d 74 61 62 2e 28 66 66 77 2e 74 68 69 73 5f 73 79 6d 5f 6e x.=.elf.e_symtab.(ffw.this_sym_n
4800 64 78 29 2e 73 74 5f 73 68 6e 64 78 20 69 6e 0a 20 20 6c 65 74 20 62 73 20 3d 20 62 69 74 73 74 dx).st_shndx.in...let.bs.=.bitst
4820 72 69 6e 67 5f 61 74 5f 76 61 64 64 72 20 65 6c 66 20 63 75 72 5f 73 79 6d 5f 6e 64 78 20 76 61 ring_at_vaddr.elf.cur_sym_ndx.va
4840 64 64 72 20 73 69 7a 65 20 69 6e 0a 20 20 6d 61 74 63 68 20 73 65 63 74 69 6f 6e 5f 61 74 5f 76 ddr.size.in...match.section_at_v
4860 61 64 64 72 20 65 6c 66 20 76 61 64 64 72 20 77 69 74 68 0a 20 20 7c 20 4e 6f 6e 65 20 2d 3e 20 addr.elf.vaddr.with...|.None.->.
4880 45 52 52 28 22 4a 75 6d 70 74 61 62 6c 65 27 73 20 76 69 72 74 75 61 6c 20 61 64 64 72 65 73 73 ERR("Jumptable's.virtual.address
48a0 20 69 73 20 6f 75 74 20 6f 66 20 61 6e 79 20 73 65 63 74 69 6f 6e 22 29 0a 20 20 7c 20 53 6f 6d .is.out.of.any.section")...|.Som
48c0 65 28 73 6e 64 78 29 20 2d 3e 0a 20 20 20 20 20 20 6c 65 74 20 6f 66 73 20 3d 20 70 68 79 73 69 e(sndx).->.......let.ofs.=.physi
48e0 63 61 6c 5f 6f 66 66 73 65 74 5f 6f 66 5f 76 61 64 64 72 20 65 6c 66 20 73 6e 64 78 20 76 61 64 cal_offset_of_vaddr.elf.sndx.vad
4900 64 72 20 69 6e 0a 20 20 20 20 20 20 66 66 77 0a 20 20 20 20 20 20 3e 3e 3e 20 28 66 66 5f 73 66 dr.in.......ffw.......>>>.(ff_sf
4920 20 5e 25 3d 0a 20 20 20 20 20 20 20 20 20 20 6d 61 74 63 68 5f 73 65 63 74 69 6f 6e 73 5f 6e 61 .^%=...........match_sections_na
4940 6d 65 20 6a 6d 70 74 62 6c 5f 73 65 63 74 69 6f 6e 20 65 6c 66 2e 65 5f 73 68 64 72 61 2e 28 73 me.jmptbl_section.elf.e_shdra.(s
4960 6e 64 78 29 2e 73 68 5f 6e 61 6d 65 0a 20 20 20 20 20 20 29 0a 20 20 20 20 20 20 3e 3e 3e 20 6d ndx).sh_name.......).......>>>.m
4980 61 74 63 68 5f 6a 6d 70 74 62 6c 5f 61 75 78 20 6c 62 6c 6c 69 73 74 20 62 73 0a 20 20 20 20 20 atch_jmptbl_aux.lbllist.bs......
49a0 20 3e 3e 3f 20 28 66 66 5f 65 66 20 5e 25 3d 0a 20 20 20 20 20 20 20 20 20 20 61 64 64 5f 72 61 .>>?.(ff_ef.^%=...........add_ra
49c0 6e 67 65 20 6f 66 73 20 28 53 61 66 65 33 32 2e 6f 66 5f 69 6e 74 20 28 73 69 7a 65 20 2f 20 38 nge.ofs.(Safe32.of_int.(size./.8
49e0 29 29 20 30 20 4a 75 6d 70 74 61 62 6c 65 29 0a 0a 28 2a 2a 20 4d 61 74 63 68 65 73 20 5b 65 63 )).0.Jumptable)..(**.Matches.[ec
4a00 6f 64 65 5d 20 61 67 61 69 6e 73 20 74 68 65 20 65 78 70 65 63 74 65 64 20 63 6f 64 65 20 66 6f ode].agains.the.expected.code.fo
4a20 72 20 61 20 73 6d 61 6c 6c 20 6d 65 6d 6f 72 79 20 63 6f 70 79 0a 20 20 20 20 70 73 65 75 64 6f r.a.small.memory.copy.....pseudo
4a40 2d 69 6e 73 74 72 75 63 74 69 6f 6e 2e 20 52 65 74 75 72 6e 73 20 61 20 74 72 69 70 6c 65 20 63 -instruction..Returns.a.triple.c
4a60 6f 6e 74 61 69 6e 69 6e 67 20 74 68 65 20 75 70 64 61 74 65 64 20 66 72 61 6d 65 77 6f 72 6b 2c ontaining.the.updated.framework,
4a80 0a 20 20 20 20 74 68 65 20 72 65 6d 61 69 6e 69 6e 67 20 45 4c 46 20 63 6f 64 65 2c 20 61 6e 64 .....the.remaining.ELF.code,.and
4aa0 20 74 68 65 20 75 70 64 61 74 65 64 20 70 72 6f 67 72 61 6d 20 63 6f 75 6e 74 65 72 2e 0a 2a 29 .the.updated.program.counter..*)
4ac0 0a 6c 65 74 20 6d 61 74 63 68 5f 6d 65 6d 63 70 79 5f 73 6d 61 6c 6c 20 65 63 6f 64 65 20 70 63 .let.match_memcpy_small.ecode.pc
4ae0 20 73 7a 20 61 6c 20 73 72 63 20 64 73 74 20 28 66 77 3a 20 66 5f 66 72 61 6d 65 77 6f 72 6b 29 .sz.al.src.dst.(fw:.f_framework)
4b00 0a 20 20 20 20 3a 20 28 66 5f 66 72 61 6d 65 77 6f 72 6b 20 2a 20 65 63 6f 64 65 20 2a 20 69 6e .....:.(f_framework.*.ecode.*.in
4b20 74 33 32 29 20 6f 70 74 69 6f 6e 20 3d 0a 20 20 6c 65 74 20 72 65 63 20 6d 61 74 63 68 5f 6d 65 t32).option.=...let.rec.match_me
4b40 6d 63 70 79 5f 73 6d 61 6c 6c 5f 61 75 78 20 6f 66 73 20 73 7a 20 65 63 6f 64 65 20 70 63 20 28 mcpy_small_aux.ofs.sz.ecode.pc.(
4b60 66 77 3a 20 66 5f 66 72 61 6d 65 77 6f 72 6b 29 20 3d 0a 20 20 20 20 6c 65 74 20 6f 66 73 33 32 fw:.f_framework).=.....let.ofs32
4b80 20 3d 20 53 61 66 65 33 32 2e 6f 66 5f 69 6e 74 20 6f 66 73 20 69 6e 0a 20 20 20 20 69 66 20 73 .=.Safe32.of_int.ofs.in.....if.s
4ba0 7a 20 3e 3d 20 38 20 26 26 20 61 6c 20 3e 3d 20 34 0a 20 20 20 20 74 68 65 6e 20 28 0a 20 20 20 z.>=.8.&&.al.>=.4.....then.(....
4bc0 20 20 20 6d 61 74 63 68 20 65 63 6f 64 65 20 77 69 74 68 0a 20 20 20 20 20 20 7c 20 20 20 4c 46 ...match.ecode.with.......|...LF
4be0 44 20 28 66 72 44 30 2c 20 72 41 30 2c 20 64 30 29 20 3a 3a 0a 20 20 20 20 20 20 20 20 20 20 53 D.(frD0,.rA0,.d0).::...........S
4c00 54 46 44 28 66 72 53 31 2c 20 72 41 31 2c 20 64 31 29 20 3a 3a 20 65 73 20 2d 3e 0a 20 20 20 20 TFD(frS1,.rA1,.d1).::.es.->.....
4c20 20 20 20 20 20 20 66 77 0a 20 20 20 20 20 20 20 20 20 20 3e 3e 3e 20 6d 61 74 63 68 5f 66 72 65 ......fw...........>>>.match_fre
4c40 67 73 20 20 46 50 52 30 20 20 66 72 44 30 0a 20 20 20 20 20 20 20 20 20 20 3e 3e 3e 20 6d 61 74 gs..FPR0..frD0...........>>>.mat
4c60 63 68 5f 69 72 65 67 73 20 20 73 72 63 20 20 20 72 41 30 0a 20 20 20 20 20 20 20 20 20 20 3e 3e ch_iregs..src...rA0...........>>
4c80 3e 20 6d 61 74 63 68 5f 69 6e 74 33 32 73 20 6f 66 73 33 32 20 28 65 78 74 73 20 64 30 29 0a 20 >.match_int32s.ofs32.(exts.d0)..
4ca0 20 20 20 20 20 20 20 20 20 3e 3e 3e 20 6d 61 74 63 68 5f 66 72 65 67 73 20 20 46 50 52 30 20 20 .........>>>.match_fregs..FPR0..
4cc0 66 72 53 31 0a 20 20 20 20 20 20 20 20 20 20 3e 3e 3e 20 6d 61 74 63 68 5f 69 72 65 67 73 20 20 frS1...........>>>.match_iregs..
4ce0 64 73 74 20 20 20 72 41 31 0a 20 20 20 20 20 20 20 20 20 20 3e 3e 3e 20 6d 61 74 63 68 5f 69 6e dst...rA1...........>>>.match_in
4d00 74 33 32 73 20 6f 66 73 33 32 20 28 65 78 74 73 20 64 31 29 0a 20 20 20 20 20 20 20 20 20 20 3e t32s.ofs32.(exts.d1)...........>
4d20 3e 3e 20 6d 61 74 63 68 5f 6d 65 6d 63 70 79 5f 73 6d 61 6c 6c 5f 61 75 78 20 28 6f 66 73 20 2b >>.match_memcpy_small_aux.(ofs.+
4d40 20 38 29 20 28 73 7a 20 2d 20 38 29 20 65 73 20 28 49 6e 74 33 32 2e 61 64 64 20 38 6c 20 70 63 .8).(sz.-.8).es.(Int32.add.8l.pc
4d60 29 0a 20 20 20 20 20 20 7c 20 5f 20 2d 3e 20 4e 6f 6e 65 0a 20 20 20 20 29 0a 20 20 20 20 65 6c ).......|._.->.None.....).....el
4d80 73 65 20 69 66 20 73 7a 20 3e 3d 20 34 0a 20 20 20 20 74 68 65 6e 20 28 0a 20 20 20 20 20 20 6d se.if.sz.>=.4.....then.(.......m
4da0 61 74 63 68 20 65 63 6f 64 65 20 77 69 74 68 0a 20 20 20 20 20 20 7c 20 20 20 4c 57 5a 28 72 44 atch.ecode.with.......|...LWZ(rD
4dc0 30 2c 20 72 41 30 2c 20 64 30 29 20 3a 3a 0a 20 20 20 20 20 20 20 20 20 20 53 54 57 28 72 53 31 0,.rA0,.d0).::...........STW(rS1
4de0 2c 20 72 41 31 2c 20 64 31 29 20 3a 3a 20 65 73 20 2d 3e 0a 20 20 20 20 20 20 20 20 20 20 66 77 ,.rA1,.d1).::.es.->...........fw
4e00 0a 20 20 20 20 20 20 20 20 20 20 3e 3e 3e 20 6d 61 74 63 68 5f 69 72 65 67 73 20 20 47 50 52 30 ...........>>>.match_iregs..GPR0
4e20 20 20 72 44 30 0a 20 20 20 20 20 20 20 20 20 20 3e 3e 3e 20 6d 61 74 63 68 5f 69 72 65 67 73 20 ..rD0...........>>>.match_iregs.
4e40 20 73 72 63 20 20 20 72 41 30 0a 20 20 20 20 20 20 20 20 20 20 3e 3e 3e 20 6d 61 74 63 68 5f 69 .src...rA0...........>>>.match_i
4e60 6e 74 33 32 73 20 6f 66 73 33 32 20 28 65 78 74 73 20 64 30 29 0a 20 20 20 20 20 20 20 20 20 20 nt32s.ofs32.(exts.d0)...........
4e80 3e 3e 3e 20 6d 61 74 63 68 5f 69 72 65 67 73 20 20 47 50 52 30 20 20 72 53 31 0a 20 20 20 20 20 >>>.match_iregs..GPR0..rS1......
4ea0 20 20 20 20 20 3e 3e 3e 20 6d 61 74 63 68 5f 69 72 65 67 73 20 20 64 73 74 20 20 20 72 41 31 0a .....>>>.match_iregs..dst...rA1.
4ec0 20 20 20 20 20 20 20 20 20 20 3e 3e 3e 20 6d 61 74 63 68 5f 69 6e 74 33 32 73 20 6f 66 73 33 32 ..........>>>.match_int32s.ofs32
4ee0 20 28 65 78 74 73 20 64 30 29 0a 20 20 20 20 20 20 20 20 20 20 3e 3e 3e 20 6d 61 74 63 68 5f 6d .(exts.d0)...........>>>.match_m
4f00 65 6d 63 70 79 5f 73 6d 61 6c 6c 5f 61 75 78 20 28 6f 66 73 20 2b 20 34 29 20 28 73 7a 20 2d 20 emcpy_small_aux.(ofs.+.4).(sz.-.
4f20 34 29 20 65 73 20 28 49 6e 74 33 32 2e 61 64 64 20 38 6c 20 70 63 29 0a 20 20 20 20 20 20 7c 20 4).es.(Int32.add.8l.pc).......|.
4f40 5f 20 2d 3e 20 4e 6f 6e 65 0a 20 20 20 20 29 0a 20 20 20 20 65 6c 73 65 20 69 66 20 73 7a 20 3e _.->.None.....).....else.if.sz.>
4f60 3d 20 32 0a 20 20 20 20 74 68 65 6e 20 28 0a 20 20 20 20 20 20 6d 61 74 63 68 20 65 63 6f 64 65 =.2.....then.(.......match.ecode
4f80 20 77 69 74 68 0a 20 20 20 20 20 20 7c 20 20 20 4c 48 5a 28 72 44 30 2c 20 72 41 30 2c 20 64 30 .with.......|...LHZ(rD0,.rA0,.d0
4fa0 29 20 3a 3a 0a 20 20 20 20 20 20 20 20 20 20 53 54 48 28 72 53 31 2c 20 72 41 31 2c 20 64 31 29 ).::...........STH(rS1,.rA1,.d1)
4fc0 20 3a 3a 20 65 73 20 2d 3e 0a 20 20 20 20 20 20 20 20 20 20 66 77 0a 20 20 20 20 20 20 20 20 20 .::.es.->...........fw..........
4fe0 20 3e 3e 3e 20 6d 61 74 63 68 5f 69 72 65 67 73 20 20 47 50 52 30 20 20 72 44 30 0a 20 20 20 20 .>>>.match_iregs..GPR0..rD0.....
5000 20 20 20 20 20 20 3e 3e 3e 20 6d 61 74 63 68 5f 69 72 65 67 73 20 20 73 72 63 20 20 20 72 41 30 ......>>>.match_iregs..src...rA0
5020 0a 20 20 20 20 20 20 20 20 20 20 3e 3e 3e 20 6d 61 74 63 68 5f 69 6e 74 33 32 73 20 6f 66 73 33 ...........>>>.match_int32s.ofs3
5040 32 20 28 65 78 74 73 20 64 30 29 0a 20 20 20 20 20 20 20 20 20 20 3e 3e 3e 20 6d 61 74 63 68 5f 2.(exts.d0)...........>>>.match_
5060 69 72 65 67 73 20 20 47 50 52 30 20 20 72 53 31 0a 20 20 20 20 20 20 20 20 20 20 3e 3e 3e 20 6d iregs..GPR0..rS1...........>>>.m
5080 61 74 63 68 5f 69 72 65 67 73 20 20 64 73 74 20 20 20 72 41 31 0a 20 20 20 20 20 20 20 20 20 20 atch_iregs..dst...rA1...........
50a0 3e 3e 3e 20 6d 61 74 63 68 5f 69 6e 74 33 32 73 20 6f 66 73 33 32 20 28 65 78 74 73 20 64 30 29 >>>.match_int32s.ofs32.(exts.d0)
50c0 0a 20 20 20 20 20 20 20 20 20 20 3e 3e 3e 20 6d 61 74 63 68 5f 6d 65 6d 63 70 79 5f 73 6d 61 6c ...........>>>.match_memcpy_smal
50e0 6c 5f 61 75 78 20 28 6f 66 73 20 2b 20 32 29 20 28 73 7a 20 2d 20 32 29 20 65 73 20 28 49 6e 74 l_aux.(ofs.+.2).(sz.-.2).es.(Int
5100 33 32 2e 61 64 64 20 38 6c 20 70 63 29 0a 20 20 20 20 20 20 7c 20 5f 20 2d 3e 20 4e 6f 6e 65 0a 32.add.8l.pc).......|._.->.None.
5120 20 20 20 20 29 0a 20 20 20 20 65 6c 73 65 20 69 66 20 73 7a 20 3e 3d 20 31 0a 20 20 20 20 74 68 ....).....else.if.sz.>=.1.....th
5140 65 6e 20 28 0a 20 20 20 20 20 20 6d 61 74 63 68 20 65 63 6f 64 65 20 77 69 74 68 0a 20 20 20 20 en.(.......match.ecode.with.....
5160 20 20 7c 20 20 20 4c 42 5a 28 72 44 30 2c 20 72 41 30 2c 20 64 30 29 20 3a 3a 0a 20 20 20 20 20 ..|...LBZ(rD0,.rA0,.d0).::......
5180 20 20 20 20 20 53 54 42 28 72 53 31 2c 20 72 41 31 2c 20 64 31 29 20 3a 3a 20 65 73 20 2d 3e 0a .....STB(rS1,.rA1,.d1).::.es.->.
51a0 20 20 20 20 20 20 20 20 20 20 66 77 0a 20 20 20 20 20 20 20 20 20 20 3e 3e 3e 20 6d 61 74 63 68 ..........fw...........>>>.match
51c0 5f 69 72 65 67 73 20 20 47 50 52 30 20 20 72 44 30 0a 20 20 20 20 20 20 20 20 20 20 3e 3e 3e 20 _iregs..GPR0..rD0...........>>>.
51e0 6d 61 74 63 68 5f 69 72 65 67 73 20 20 73 72 63 20 20 20 72 41 30 0a 20 20 20 20 20 20 20 20 20 match_iregs..src...rA0..........
5200 20 3e 3e 3e 20 6d 61 74 63 68 5f 69 6e 74 33 32 73 20 6f 66 73 33 32 20 28 65 78 74 73 20 64 30 .>>>.match_int32s.ofs32.(exts.d0
5220 29 0a 20 20 20 20 20 20 20 20 20 20 3e 3e 3e 20 6d 61 74 63 68 5f 69 72 65 67 73 20 20 47 50 52 )...........>>>.match_iregs..GPR
5240 30 20 20 72 53 31 0a 20 20 20 20 20 20 20 20 20 20 3e 3e 3e 20 6d 61 74 63 68 5f 69 72 65 67 73 0..rS1...........>>>.match_iregs
5260 20 20 64 73 74 20 20 20 72 41 31 0a 20 20 20 20 20 20 20 20 20 20 3e 3e 3e 20 6d 61 74 63 68 5f ..dst...rA1...........>>>.match_
5280 69 6e 74 33 32 73 20 6f 66 73 33 32 20 28 65 78 74 73 20 64 30 29 0a 20 20 20 20 20 20 20 20 20 int32s.ofs32.(exts.d0)..........
52a0 20 3e 3e 3e 20 6d 61 74 63 68 5f 6d 65 6d 63 70 79 5f 73 6d 61 6c 6c 5f 61 75 78 20 28 6f 66 73 .>>>.match_memcpy_small_aux.(ofs
52c0 20 2b 20 31 29 20 28 73 7a 20 2d 20 31 29 20 65 73 20 28 49 6e 74 33 32 2e 61 64 64 20 38 6c 20 .+.1).(sz.-.1).es.(Int32.add.8l.
52e0 70 63 29 0a 20 20 20 20 20 20 7c 20 5f 20 2d 3e 20 4e 6f 6e 65 0a 20 20 20 20 29 0a 20 20 20 20 pc).......|._.->.None.....).....
5300 65 6c 73 65 20 53 6f 6d 65 28 66 77 2c 20 65 63 6f 64 65 2c 20 70 63 29 0a 20 20 69 6e 20 6d 61 else.Some(fw,.ecode,.pc)...in.ma
5320 74 63 68 5f 6d 65 6d 63 70 79 5f 73 6d 61 6c 6c 5f 61 75 78 20 30 20 73 7a 20 65 63 6f 64 65 20 tch_memcpy_small_aux.0.sz.ecode.
5340 70 63 20 66 77 0a 0a 28 2a 2a 20 4d 61 74 63 68 65 73 20 5b 65 63 6f 64 65 5d 20 61 67 61 69 6e pc.fw..(**.Matches.[ecode].again
5360 73 20 74 68 65 20 65 78 70 65 63 74 65 64 20 63 6f 64 65 20 66 6f 72 20 61 20 62 69 67 20 6d 65 s.the.expected.code.for.a.big.me
5380 6d 6f 72 79 20 63 6f 70 79 0a 20 20 20 20 70 73 65 75 64 6f 2d 69 6e 73 74 72 75 63 74 69 6f 6e mory.copy.....pseudo-instruction
53a0 2e 20 52 65 74 75 72 6e 73 20 61 20 74 72 69 70 6c 65 20 63 6f 6e 74 61 69 6e 69 6e 67 20 74 68 ..Returns.a.triple.containing.th
53c0 65 20 75 70 64 61 74 65 64 20 66 72 61 6d 65 77 6f 72 6b 2c 0a 20 20 20 20 74 68 65 20 72 65 6d e.updated.framework,.....the.rem
53e0 61 69 6e 69 6e 67 20 45 4c 46 20 63 6f 64 65 2c 20 61 6e 64 20 74 68 65 20 75 70 64 61 74 65 64 aining.ELF.code,.and.the.updated
5400 20 70 72 6f 67 72 61 6d 20 63 6f 75 6e 74 65 72 2e 0a 2a 29 0a 6c 65 74 20 6d 61 74 63 68 5f 6d .program.counter..*).let.match_m
5420 65 6d 63 70 79 5f 62 69 67 20 65 63 6f 64 65 20 70 63 20 73 7a 20 61 6c 20 73 72 63 20 64 73 74 emcpy_big.ecode.pc.sz.al.src.dst
5440 20 66 77 0a 20 20 20 20 3a 20 28 66 5f 66 72 61 6d 65 77 6f 72 6b 20 2a 20 65 63 6f 64 65 20 2a .fw.....:.(f_framework.*.ecode.*
5460 20 69 6e 74 33 32 29 20 6f 70 74 69 6f 6e 20 3d 0a 20 20 6d 61 74 63 68 20 65 63 6f 64 65 20 77 .int32).option.=...match.ecode.w
5480 69 74 68 0a 20 20 7c 20 20 20 41 44 44 49 20 28 72 44 30 2c 20 72 41 30 2c 20 73 69 6d 6d 30 29 ith...|...ADDI.(rD0,.rA0,.simm0)
54a0 20 20 20 20 20 20 20 20 20 20 20 3a 3a 20 28 2a 20 70 63 20 2a 29 0a 20 20 20 20 20 20 4d 54 53 ...........::.(*.pc.*).......MTS
54c0 50 52 28 72 53 31 2c 20 73 70 72 31 29 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 3a PR(rS1,.spr1).................::
54e0 0a 20 20 20 20 20 20 41 44 44 49 20 28 72 44 32 2c 20 72 41 32 2c 20 73 69 6d 6d 32 29 20 20 20 .......ADDI.(rD2,.rA2,.simm2)...
5500 20 20 20 20 20 20 20 20 3a 3a 0a 20 20 20 20 20 20 41 44 44 49 20 28 72 44 33 2c 20 72 41 33 2c ........::.......ADDI.(rD3,.rA3,
5520 20 73 69 6d 6d 33 29 20 20 20 20 20 20 20 20 20 20 20 3a 3a 0a 20 20 20 20 20 20 4c 57 5a 55 20 .simm3)...........::.......LWZU.
5540 28 72 44 34 2c 20 72 41 34 2c 20 64 34 29 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 3a 20 28 (rD4,.rA4,.d4)..............::.(
5560 2a 20 70 63 20 2b 20 31 36 20 3c 2d 20 20 2a 29 0a 20 20 20 20 20 20 53 54 57 55 20 28 72 53 35 *.pc.+.16.<-..*).......STWU.(rS5
5580 2c 20 72 41 35 2c 20 64 35 29 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 3a 20 28 2a 20 20 20 ,.rA5,.d5)..............::.(*...
55a0 20 20 20 20 20 20 20 20 7c 20 2a 29 0a 20 20 20 20 20 20 42 43 78 20 20 28 62 6f 36 2c 20 20 62 ........|.*).......BCx..(bo6,..b
55c0 69 36 2c 20 20 62 64 36 2c 20 61 61 36 2c 20 6c 6b 36 29 20 3a 3a 20 28 2a 20 70 63 20 2b 20 32 i6,..bd6,.aa6,.lk6).::.(*.pc.+.2
55e0 34 20 2d 2d 20 20 2a 29 0a 20 20 20 20 20 20 65 73 20 2d 3e 0a 20 20 20 20 20 20 6c 65 74 20 73 4.--..*).......es.->.......let.s
5600 7a 27 20 3d 20 53 61 66 65 33 32 2e 6f 66 5f 69 6e 74 20 28 73 7a 20 2f 20 34 29 20 69 6e 0a 20 z'.=.Safe32.of_int.(sz./.4).in..
5620 20 20 20 20 20 6c 65 74 20 28 73 2c 20 64 29 20 3d 20 69 66 20 64 73 74 20 3c 3e 20 47 50 52 31 .....let.(s,.d).=.if.dst.<>.GPR1
5640 31 20 74 68 65 6e 20 28 47 50 52 31 31 2c 20 47 50 52 31 32 29 20 65 6c 73 65 20 28 47 50 52 31 1.then.(GPR11,.GPR12).else.(GPR1
5660 32 2c 20 47 50 52 31 31 29 20 69 6e 0a 20 20 20 20 20 20 6c 65 74 20 74 61 72 67 65 74 5f 76 61 2,.GPR11).in.......let.target_va
5680 64 64 72 20 3d 20 49 6e 74 33 32 2e 28 61 64 64 20 31 36 6c 20 70 63 29 20 69 6e 0a 20 20 20 20 ddr.=.Int32.(add.16l.pc).in.....
56a0 20 20 6c 65 74 20 64 65 73 74 5f 76 61 64 64 72 20 3d 20 49 6e 74 33 32 2e 28 61 64 64 20 28 61 ..let.dest_vaddr.=.Int32.(add.(a
56c0 64 64 20 32 34 6c 20 70 63 29 20 28 6d 75 6c 20 34 6c 20 28 65 78 74 73 20 62 64 36 29 29 29 20 dd.24l.pc).(mul.4l.(exts.bd6))).
56e0 69 6e 0a 20 20 20 20 20 20 66 77 0a 20 20 20 20 20 20 3e 3e 3e 20 6d 61 74 63 68 5f 69 72 65 67 in.......fw.......>>>.match_ireg
5700 73 20 20 47 50 52 30 20 20 72 44 30 0a 20 20 20 20 20 20 3e 3e 3e 20 6d 61 74 63 68 5f 69 72 65 s..GPR0..rD0.......>>>.match_ire
5720 67 73 20 20 47 50 52 30 20 20 72 41 30 0a 20 20 20 20 20 20 3e 3e 3e 20 6d 61 74 63 68 5f 69 6e gs..GPR0..rA0.......>>>.match_in
5740 74 33 32 73 20 73 7a 27 20 20 20 28 65 78 74 73 20 73 69 6d 6d 30 29 0a 20 20 20 20 20 20 3e 3e t32s.sz'...(exts.simm0).......>>
5760 3e 20 6d 61 74 63 68 5f 69 72 65 67 73 20 20 47 50 52 30 20 20 72 53 31 0a 20 20 20 20 20 20 3e >.match_iregs..GPR0..rS1.......>
5780 3e 3e 20 6d 61 74 63 68 5f 63 74 72 20 20 20 20 73 70 72 31 0a 20 20 20 20 20 20 3e 3e 3e 20 6d >>.match_ctr....spr1.......>>>.m
57a0 61 74 63 68 5f 69 72 65 67 73 20 20 73 20 20 20 20 20 72 44 32 0a 20 20 20 20 20 20 3e 3e 3e 20 atch_iregs..s.....rD2.......>>>.
57c0 6d 61 74 63 68 5f 69 72 65 67 73 20 20 73 72 63 20 20 20 72 41 32 0a 20 20 20 20 20 20 3e 3e 3e match_iregs..src...rA2.......>>>
57e0 20 6d 61 74 63 68 5f 69 6e 74 33 32 73 20 28 2d 34 6c 29 20 28 65 78 74 73 20 73 69 6d 6d 32 29 .match_int32s.(-4l).(exts.simm2)
5800 0a 20 20 20 20 20 20 3e 3e 3e 20 6d 61 74 63 68 5f 69 72 65 67 73 20 20 64 20 20 20 20 20 72 44 .......>>>.match_iregs..d.....rD
5820 33 0a 20 20 20 20 20 20 3e 3e 3e 20 6d 61 74 63 68 5f 69 72 65 67 73 20 20 64 73 74 20 20 20 72 3.......>>>.match_iregs..dst...r
5840 41 33 0a 20 20 20 20 20 20 3e 3e 3e 20 6d 61 74 63 68 5f 69 6e 74 33 32 73 20 28 2d 34 6c 29 20 A3.......>>>.match_int32s.(-4l).
5860 28 65 78 74 73 20 73 69 6d 6d 33 29 0a 20 20 20 20 20 20 3e 3e 3e 20 6d 61 74 63 68 5f 69 72 65 (exts.simm3).......>>>.match_ire
5880 67 73 20 20 47 50 52 30 20 20 72 44 34 0a 20 20 20 20 20 20 3e 3e 3e 20 6d 61 74 63 68 5f 69 72 gs..GPR0..rD4.......>>>.match_ir
58a0 65 67 73 20 20 73 20 20 20 20 20 72 41 34 0a 20 20 20 20 20 20 3e 3e 3e 20 6d 61 74 63 68 5f 69 egs..s.....rA4.......>>>.match_i
58c0 6e 74 33 32 73 20 34 6c 20 20 20 20 28 65 78 74 73 20 64 34 29 0a 20 20 20 20 20 20 3e 3e 3e 20 nt32s.4l....(exts.d4).......>>>.
58e0 6d 61 74 63 68 5f 69 72 65 67 73 20 20 47 50 52 30 20 20 72 53 35 0a 20 20 20 20 20 20 3e 3e 3e match_iregs..GPR0..rS5.......>>>
5900 20 6d 61 74 63 68 5f 69 72 65 67 73 20 20 64 20 20 20 20 20 72 41 35 0a 20 20 20 20 20 20 3e 3e .match_iregs..d.....rA5.......>>
5920 3e 20 6d 61 74 63 68 5f 69 6e 74 33 32 73 20 34 6c 20 20 20 20 28 65 78 74 73 20 64 35 29 0a 20 >.match_int32s.4l....(exts.d5)..
5940 20 20 20 20 20 3e 3e 3e 20 28 0a 20 20 20 20 20 20 20 20 62 69 74 6d 61 74 63 68 20 62 6f 36 20 .....>>>.(.........bitmatch.bo6.
5960 77 69 74 68 0a 20 20 20 20 20 20 20 20 7c 20 7b 20 31 36 3a 35 3a 69 6e 74 20 7d 20 2d 3e 20 69 with.........|.{.16:5:int.}.->.i
5980 64 0a 20 20 20 20 20 20 20 20 7c 20 7b 20 5f 20 7d 20 2d 3e 0a 20 20 20 20 20 20 20 20 20 20 20 d.........|.{._.}.->............
59a0 20 66 66 5f 65 66 20 5e 25 3d 20 61 64 64 5f 6c 6f 67 20 28 45 52 52 4f 52 28 22 62 69 74 6d 61 .ff_ef.^%=.add_log.(ERROR("bitma
59c0 74 63 68 20 62 6f 22 29 29 0a 20 20 20 20 20 20 29 0a 20 20 20 20 20 20 3e 3e 3e 20 6d 61 74 63 tch.bo")).......).......>>>.matc
59e0 68 5f 69 6e 74 73 20 20 20 62 69 36 20 20 20 30 0a 20 20 20 20 20 20 3e 3e 3e 20 6d 61 74 63 68 h_ints...bi6...0.......>>>.match
5a00 5f 69 6e 74 33 32 73 20 64 65 73 74 5f 76 61 64 64 72 20 74 61 72 67 65 74 5f 76 61 64 64 72 0a _int32s.dest_vaddr.target_vaddr.
5a20 20 20 20 20 20 20 3e 3e 3e 20 6d 61 74 63 68 5f 62 6f 6f 6c 73 20 20 66 61 6c 73 65 20 61 61 36 ......>>>.match_bools..false.aa6
5a40 0a 20 20 20 20 20 20 3e 3e 3e 20 6d 61 74 63 68 5f 62 6f 6f 6c 73 20 20 66 61 6c 73 65 20 6c 6b .......>>>.match_bools..false.lk
5a60 36 0a 20 20 20 20 20 20 3e 3e 3e 20 28 66 75 6e 20 66 77 20 2d 3e 0a 20 20 20 20 20 20 20 20 6d 6.......>>>.(fun.fw.->.........m
5a80 61 74 63 68 20 73 7a 20 6c 61 6e 64 20 33 20 77 69 74 68 0a 20 20 20 20 20 20 20 20 7c 20 31 20 atch.sz.land.3.with.........|.1.
5aa0 2d 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 62 65 67 69 6e 20 6d 61 74 63 68 20 65 73 20 77 69 ->.............begin.match.es.wi
5ac0 74 68 0a 20 20 20 20 20 20 20 20 20 20 20 20 7c 20 20 20 4c 42 5a 28 72 44 30 2c 20 72 41 30 2c th.............|...LBZ(rD0,.rA0,
5ae0 20 64 30 29 20 3a 3a 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 53 54 42 28 72 53 31 2c .d0).::.................STB(rS1,
5b00 20 72 41 31 2c 20 64 31 29 20 3a 3a 20 65 73 20 2d 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 .rA1,.d1).::.es.->..............
5b20 20 20 20 66 77 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3e 3e 3e 20 6d 61 74 63 68 5f ...fw.................>>>.match_
5b40 69 72 65 67 73 20 20 47 50 52 30 20 72 44 30 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 iregs..GPR0.rD0.................
5b60 3e 3e 3e 20 6d 61 74 63 68 5f 69 72 65 67 73 20 20 73 20 20 20 20 72 41 30 0a 20 20 20 20 20 20 >>>.match_iregs..s....rA0.......
5b80 20 20 20 20 20 20 20 20 20 20 3e 3e 3e 20 6d 61 74 63 68 5f 69 6e 74 33 32 73 20 34 6c 20 20 20 ..........>>>.match_int32s.4l...
5ba0 28 65 78 74 73 20 64 30 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3e 3e 3e 20 6d 61 (exts.d0).................>>>.ma
5bc0 74 63 68 5f 69 72 65 67 73 20 20 47 50 52 30 20 72 53 31 0a 20 20 20 20 20 20 20 20 20 20 20 20 tch_iregs..GPR0.rS1.............
5be0 20 20 20 20 3e 3e 3e 20 6d 61 74 63 68 5f 69 72 65 67 73 20 20 64 20 20 20 20 72 41 31 0a 20 20 ....>>>.match_iregs..d....rA1...
5c00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3e 3e 3e 20 6d 61 74 63 68 5f 69 6e 74 33 32 73 20 34 ..............>>>.match_int32s.4
5c20 6c 20 20 20 28 65 78 74 73 20 64 31 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3e 3e l...(exts.d1).................>>
5c40 3e 20 28 66 75 6e 20 66 77 20 2d 3e 20 53 6f 6d 65 28 66 77 2c 20 65 73 2c 20 49 6e 74 33 32 2e >.(fun.fw.->.Some(fw,.es,.Int32.
5c60 61 64 64 20 33 36 6c 20 70 63 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 7c 20 5f 20 2d 3e 20 add.36l.pc)).............|._.->.
5c80 4e 6f 6e 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 65 6e 64 0a 20 20 20 20 20 20 20 20 7c 20 32 None.............end.........|.2
5ca0 20 2d 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 62 65 67 69 6e 20 6d 61 74 63 68 20 65 73 20 77 .->.............begin.match.es.w
5cc0 69 74 68 0a 20 20 20 20 20 20 20 20 20 20 20 20 7c 20 20 20 4c 48 5a 28 72 44 30 2c 20 72 41 30 ith.............|...LHZ(rD0,.rA0
5ce0 2c 20 64 30 29 20 3a 3a 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 53 54 48 28 72 53 31 ,.d0).::.................STH(rS1
5d00 2c 20 72 41 31 2c 20 64 31 29 20 3a 3a 20 65 73 20 2d 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 ,.rA1,.d1).::.es.->.............
5d20 20 20 20 20 66 77 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3e 3e 3e 20 6d 61 74 63 68 ....fw.................>>>.match
5d40 5f 69 72 65 67 73 20 20 47 50 52 30 20 72 44 30 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 _iregs..GPR0.rD0................
5d60 20 3e 3e 3e 20 6d 61 74 63 68 5f 69 72 65 67 73 20 20 73 20 20 20 20 72 41 30 0a 20 20 20 20 20 .>>>.match_iregs..s....rA0......
5d80 20 20 20 20 20 20 20 20 20 20 20 3e 3e 3e 20 6d 61 74 63 68 5f 69 6e 74 33 32 73 20 34 6c 20 20 ...........>>>.match_int32s.4l..
5da0 20 28 65 78 74 73 20 64 30 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3e 3e 3e 20 6d .(exts.d0).................>>>.m
5dc0 61 74 63 68 5f 69 72 65 67 73 20 20 47 50 52 30 20 72 53 31 0a 20 20 20 20 20 20 20 20 20 20 20 atch_iregs..GPR0.rS1............
5de0 20 20 20 20 20 3e 3e 3e 20 6d 61 74 63 68 5f 69 72 65 67 73 20 20 64 20 20 20 20 72 41 31 0a 20 .....>>>.match_iregs..d....rA1..
5e00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3e 3e 3e 20 6d 61 74 63 68 5f 69 6e 74 33 32 73 20 ...............>>>.match_int32s.
5e20 34 6c 20 20 20 28 65 78 74 73 20 64 31 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3e 4l...(exts.d1).................>
5e40 3e 3e 20 28 66 75 6e 20 66 77 20 2d 3e 20 53 6f 6d 65 28 66 77 2c 20 65 73 20 2c 20 49 6e 74 33 >>.(fun.fw.->.Some(fw,.es.,.Int3
5e60 32 2e 61 64 64 20 33 36 6c 20 70 63 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 7c 20 5f 20 2d 2.add.36l.pc)).............|._.-
5e80 3e 20 4e 6f 6e 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 65 6e 64 0a 20 20 20 20 20 20 20 20 7c >.None.............end.........|
5ea0 20 33 20 2d 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 62 65 67 69 6e 20 6d 61 74 63 68 20 65 73 .3.->.............begin.match.es
5ec0 20 77 69 74 68 0a 20 20 20 20 20 20 20 20 20 20 20 20 7c 20 20 20 4c 48 5a 28 72 44 30 2c 20 72 .with.............|...LHZ(rD0,.r
5ee0 41 30 2c 20 64 30 29 20 3a 3a 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 53 54 48 28 72 A0,.d0).::.................STH(r
5f00 53 31 2c 20 72 41 31 2c 20 64 31 29 20 3a 3a 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 S1,.rA1,.d1).::.................
5f20 4c 42 5a 28 72 44 32 2c 20 72 41 32 2c 20 64 32 29 20 3a 3a 0a 20 20 20 20 20 20 20 20 20 20 20 LBZ(rD2,.rA2,.d2).::............
5f40 20 20 20 20 20 53 54 42 28 72 53 33 2c 20 72 41 33 2c 20 64 33 29 20 3a 3a 20 65 73 20 2d 3e 0a .....STB(rS3,.rA3,.d3).::.es.->.
5f60 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 66 77 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 ................fw..............
5f80 20 20 20 3e 3e 3e 20 6d 61 74 63 68 5f 69 72 65 67 73 20 20 47 50 52 30 20 72 44 30 0a 20 20 20 ...>>>.match_iregs..GPR0.rD0....
5fa0 20 20 20 20 20 20 20 20 20 20 20 20 20 3e 3e 3e 20 6d 61 74 63 68 5f 69 72 65 67 73 20 20 73 20 .............>>>.match_iregs..s.
5fc0 20 20 20 72 41 30 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3e 3e 3e 20 6d 61 74 63 68 ...rA0.................>>>.match
5fe0 5f 69 6e 74 33 32 73 20 34 6c 20 20 20 28 65 78 74 73 20 64 30 29 0a 20 20 20 20 20 20 20 20 20 _int32s.4l...(exts.d0)..........
6000 20 20 20 20 20 20 20 3e 3e 3e 20 6d 61 74 63 68 5f 69 72 65 67 73 20 20 47 50 52 30 20 72 53 31 .......>>>.match_iregs..GPR0.rS1
6020 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3e 3e 3e 20 6d 61 74 63 68 5f 69 72 65 67 73 .................>>>.match_iregs
6040 20 20 64 20 20 20 20 72 41 31 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3e 3e 3e 20 6d ..d....rA1.................>>>.m
6060 61 74 63 68 5f 69 6e 74 33 32 73 20 34 6c 20 20 20 28 65 78 74 73 20 64 31 29 0a 20 20 20 20 20 atch_int32s.4l...(exts.d1)......
6080 20 20 20 20 20 20 20 20 20 20 20 3e 3e 3e 20 6d 61 74 63 68 5f 69 72 65 67 73 20 20 47 50 52 30 ...........>>>.match_iregs..GPR0
60a0 20 72 44 32 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3e 3e 3e 20 6d 61 74 63 68 5f 69 .rD2.................>>>.match_i
60c0 72 65 67 73 20 20 73 20 20 20 20 72 41 32 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3e regs..s....rA2.................>
60e0 3e 3e 20 6d 61 74 63 68 5f 69 6e 74 33 32 73 20 36 6c 20 20 20 28 65 78 74 73 20 64 32 29 0a 20 >>.match_int32s.6l...(exts.d2)..
6100 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3e 3e 3e 20 6d 61 74 63 68 5f 69 72 65 67 73 20 20 ...............>>>.match_iregs..
6120 47 50 52 30 20 72 53 33 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3e 3e 3e 20 6d 61 74 GPR0.rS3.................>>>.mat
6140 63 68 5f 69 72 65 67 73 20 20 64 20 20 20 20 72 41 33 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 ch_iregs..d....rA3..............
6160 20 20 20 3e 3e 3e 20 6d 61 74 63 68 5f 69 6e 74 33 32 73 20 36 6c 20 20 20 28 65 78 74 73 20 64 ...>>>.match_int32s.6l...(exts.d
6180 33 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3e 3e 3e 20 28 66 75 6e 20 66 77 20 2d 3).................>>>.(fun.fw.-
61a0 3e 20 53 6f 6d 65 28 66 77 2c 20 65 73 2c 20 49 6e 74 33 32 2e 61 64 64 20 34 34 6c 20 70 63 29 >.Some(fw,.es,.Int32.add.44l.pc)
61c0 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 7c 20 5f 20 2d 3e 20 4e 6f 6e 65 0a 20 20 20 20 20 20 ).............|._.->.None.......
61e0 20 20 20 20 20 20 65 6e 64 0a 20 20 20 20 20 20 20 20 7c 20 5f 20 2d 3e 20 53 6f 6d 65 28 66 77 ......end.........|._.->.Some(fw
6200 2c 20 65 73 2c 20 49 6e 74 33 32 2e 61 64 64 20 32 38 6c 20 70 63 29 0a 20 20 20 20 20 20 29 0a ,.es,.Int32.add.28l.pc).......).
6220 20 20 7c 20 5f 20 2d 3e 20 4e 6f 6e 65 0a 0a 28 2a 2a 20 43 6f 6d 70 61 72 65 73 20 61 20 77 68 ..|._.->.None..(**.Compares.a.wh
6240 6f 6c 65 20 43 6f 6d 70 43 65 72 74 20 66 75 6e 63 74 69 6f 6e 20 63 6f 64 65 20 61 67 61 69 6e ole.CompCert.function.code.again
6260 73 74 20 61 6e 20 45 4c 46 20 63 6f 64 65 2c 20 73 74 61 72 74 69 6e 67 20 61 74 0a 20 20 20 20 st.an.ELF.code,.starting.at.....
6280 70 72 6f 67 72 61 6d 20 63 6f 75 6e 74 65 72 20 5b 70 63 5d 2e 0a 2a 29 0a 6c 65 74 20 72 65 63 program.counter.[pc]..*).let.rec
62a0 20 63 6f 6d 70 61 72 65 5f 63 6f 64 65 20 63 63 6f 64 65 20 65 63 6f 64 65 20 70 63 20 66 77 3a .compare_code.ccode.ecode.pc.fw:
62c0 20 66 5f 66 72 61 6d 65 77 6f 72 6b 20 6f 72 5f 65 72 72 20 3d 0a 20 20 6c 65 74 20 65 72 72 6f .f_framework.or_err.=...let.erro
62e0 72 20 3d 20 45 52 52 28 22 4e 6f 6e 2d 6d 61 74 63 68 69 6e 67 20 69 6e 73 74 72 75 63 74 69 6f r.=.ERR("Non-matching.instructio
6300 6e 73 22 29 20 69 6e 0a 20 20 6d 61 74 63 68 20 63 63 6f 64 65 2c 20 65 63 6f 64 65 20 77 69 74 ns").in...match.ccode,.ecode.wit
6320 68 0a 20 20 7c 20 5b 5d 2c 20 5b 5d 20 20 20 20 20 20 20 20 2d 3e 20 4f 4b 28 66 77 29 0a 20 20 h...|.[],.[]........->.OK(fw)...
6340 7c 20 5b 5d 2c 20 5f 20 7c 20 5f 2c 20 5b 5d 20 2d 3e 20 45 52 52 28 22 43 6f 64 65 73 20 68 61 |.[],._.|._,.[].->.ERR("Codes.ha
6360 76 65 20 64 69 66 66 65 72 65 6e 74 20 6c 65 6e 67 74 68 73 22 29 0a 20 20 7c 20 63 3a 3a 63 73 ve.different.lengths")...|.c::cs
6380 2c 20 65 3a 3a 65 73 20 20 2d 3e 0a 20 20 20 20 20 20 6c 65 74 20 72 65 63 75 72 5f 73 69 6d 70 ,.e::es..->.......let.recur_simp
63a0 6c 20 3d 20 63 6f 6d 70 61 72 65 5f 63 6f 64 65 20 63 73 20 65 73 20 28 49 6e 74 33 32 2e 61 64 l.=.compare_code.cs.es.(Int32.ad
63c0 64 20 34 6c 20 70 63 29 20 69 6e 0a 20 20 20 20 20 20 6c 65 74 20 66 77 20 3d 0a 20 20 20 20 20 d.4l.pc).in.......let.fw.=......
63e0 20 20 20 69 66 20 21 64 65 62 75 67 0a 20 20 20 20 20 20 20 20 74 68 65 6e 20 28 0a 20 20 20 20 ...if.!debug.........then.(.....
6400 20 20 20 20 20 20 6c 65 74 20 63 75 72 72 5f 69 6e 73 74 72 20 3d 20 22 20 20 5b 22 20 5e 20 73 ......let.curr_instr.=."..[".^.s
6420 74 72 69 6e 67 5f 6f 66 5f 69 6e 74 33 32 20 70 63 20 5e 20 22 5d 20 22 20 5e 0a 20 20 20 20 20 tring_of_int32.pc.^."].".^......
6440 20 20 20 20 20 20 20 73 74 72 69 6e 67 5f 6f 66 5f 69 6e 73 74 72 75 63 74 69 6f 6e 20 63 20 5e .......string_of_instruction.c.^
6460 20 22 20 2d 20 22 20 5e 20 73 74 72 69 6e 67 5f 6f 66 5f 69 6e 73 74 72 20 65 20 69 6e 0a 20 20 .".-.".^.string_of_instr.e.in...
6480 20 20 20 20 20 20 20 20 28 66 66 5f 65 66 20 5e 25 3d 20 61 64 64 5f 6c 6f 67 20 28 44 45 42 55 ........(ff_ef.^%=.add_log.(DEBU
64a0 47 28 63 75 72 72 5f 69 6e 73 74 72 29 29 29 20 66 77 0a 20 20 20 20 20 20 20 20 29 0a 20 20 20 G(curr_instr))).fw.........)....
64c0 20 20 20 20 20 65 6c 73 65 20 66 77 0a 20 20 20 20 20 20 69 6e 0a 20 20 20 20 20 20 6d 61 74 63 .....else.fw.......in.......matc
64e0 68 20 63 20 77 69 74 68 0a 20 20 20 20 20 20 7c 20 50 61 64 64 28 72 64 2c 20 72 31 2c 20 72 32 h.c.with.......|.Padd(rd,.r1,.r2
6500 29 20 2d 3e 0a 20 20 20 20 20 20 20 20 20 20 62 65 67 69 6e 20 6d 61 74 63 68 20 65 63 6f 64 65 ).->...........begin.match.ecode
6520 20 77 69 74 68 0a 20 20 20 20 20 20 20 20 20 20 7c 20 41 44 44 78 28 72 44 2c 20 72 41 2c 20 72 .with...........|.ADDx(rD,.rA,.r
6540 42 2c 20 6f 65 2c 20 72 63 29 20 3a 3a 20 65 73 20 2d 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 B,.oe,.rc).::.es.->.............
6560 20 20 66 77 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3e 3e 3e 20 6d 61 74 63 68 5f 69 72 65 ..fw...............>>>.match_ire
6580 67 73 20 72 64 20 20 20 20 72 44 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3e 3e 3e 20 6d 61 gs.rd....rD...............>>>.ma
65a0 74 63 68 5f 69 72 65 67 73 20 72 31 20 20 20 20 72 41 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 tch_iregs.r1....rA..............
65c0 20 3e 3e 3e 20 6d 61 74 63 68 5f 69 72 65 67 73 20 72 32 20 20 20 20 72 42 0a 20 20 20 20 20 20 .>>>.match_iregs.r2....rB.......
65e0 20 20 20 20 20 20 20 20 3e 3e 3e 20 6d 61 74 63 68 5f 62 6f 6f 6c 73 20 66 61 6c 73 65 20 6f 65 ........>>>.match_bools.false.oe
6600 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3e 3e 3e 20 6d 61 74 63 68 5f 62 6f 6f 6c 73 20 66 ...............>>>.match_bools.f
6620 61 6c 73 65 20 72 63 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3e 3e 3e 20 72 65 63 75 72 5f alse.rc...............>>>.recur_
6640 73 69 6d 70 6c 0a 20 20 20 20 20 20 20 20 20 20 7c 20 5f 20 2d 3e 20 65 72 72 6f 72 0a 20 20 20 simpl...........|._.->.error....
6660 20 20 20 20 20 20 20 65 6e 64 0a 20 20 20 20 20 20 7c 20 50 61 64 64 65 28 72 64 2c 20 72 31 2c .......end.......|.Padde(rd,.r1,
6680 20 72 32 29 20 2d 3e 0a 20 20 20 20 20 20 20 20 20 20 62 65 67 69 6e 20 6d 61 74 63 68 20 65 63 .r2).->...........begin.match.ec
66a0 6f 64 65 20 77 69 74 68 0a 20 20 20 20 20 20 20 20 20 20 7c 20 41 44 44 45 78 28 72 44 2c 20 72 ode.with...........|.ADDEx(rD,.r
66c0 41 2c 20 72 42 2c 20 6f 65 2c 20 72 63 29 20 3a 3a 20 65 73 20 2d 3e 0a 20 20 20 20 20 20 20 20 A,.rB,.oe,.rc).::.es.->.........
66e0 20 20 20 20 20 20 66 77 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3e 3e 3e 20 6d 61 74 63 68 ......fw...............>>>.match
6700 5f 69 72 65 67 73 20 72 64 20 20 20 20 72 44 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3e 3e _iregs.rd....rD...............>>
6720 3e 20 6d 61 74 63 68 5f 69 72 65 67 73 20 72 31 20 20 20 20 72 41 0a 20 20 20 20 20 20 20 20 20 >.match_iregs.r1....rA..........
6740 20 20 20 20 20 3e 3e 3e 20 6d 61 74 63 68 5f 69 72 65 67 73 20 72 32 20 20 20 20 72 42 0a 20 20 .....>>>.match_iregs.r2....rB...
6760 20 20 20 20 20 20 20 20 20 20 20 20 3e 3e 3e 20 6d 61 74 63 68 5f 62 6f 6f 6c 73 20 66 61 6c 73 ............>>>.match_bools.fals
6780 65 20 6f 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3e 3e 3e 20 6d 61 74 63 68 5f 62 6f 6f e.oe...............>>>.match_boo
67a0 6c 73 20 66 61 6c 73 65 20 72 63 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3e 3e 3e 20 72 65 ls.false.rc...............>>>.re
67c0 63 75 72 5f 73 69 6d 70 6c 0a 20 20 20 20 20 20 20 20 20 20 7c 20 5f 20 2d 3e 20 65 72 72 6f 72 cur_simpl...........|._.->.error
67e0 0a 20 20 20 20 20 20 20 20 20 20 65 6e 64 0a 20 20 20 20 20 20 7c 20 50 61 64 64 69 28 72 64 2c ...........end.......|.Paddi(rd,
6800 20 72 31 2c 20 63 73 74 29 20 2d 3e 0a 20 20 20 20 20 20 20 20 20 20 62 65 67 69 6e 20 6d 61 74 .r1,.cst).->...........begin.mat
6820 63 68 20 65 63 6f 64 65 20 77 69 74 68 0a 20 20 20 20 20 20 20 20 20 20 7c 20 41 44 44 49 28 72 ch.ecode.with...........|.ADDI(r
6840 44 2c 20 72 41 2c 20 73 69 6d 6d 29 20 3a 3a 20 65 73 20 2d 3e 0a 20 20 20 20 20 20 20 20 20 20 D,.rA,.simm).::.es.->...........
6860 20 20 20 20 66 77 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3e 3e 3e 20 6d 61 74 63 68 5f 69 ....fw...............>>>.match_i
6880 72 65 67 73 20 72 64 20 20 72 44 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3e 3e 3e 20 6d 61 regs.rd..rD...............>>>.ma
68a0 74 63 68 5f 69 72 65 67 73 20 72 31 20 20 72 41 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3e tch_iregs.r1..rA...............>
68c0 3e 3e 20 6d 61 74 63 68 5f 63 73 74 73 20 20 63 73 74 20 28 65 78 74 73 20 73 69 6d 6d 29 0a 20 >>.match_csts..cst.(exts.simm)..
68e0 20 20 20 20 20 20 20 20 20 20 20 20 20 3e 3e 3e 20 72 65 63 75 72 5f 73 69 6d 70 6c 0a 20 20 20 .............>>>.recur_simpl....
6900 20 20 20 20 20 20 20 7c 20 5f 20 2d 3e 20 65 72 72 6f 72 0a 20 20 20 20 20 20 20 20 20 20 65 6e .......|._.->.error...........en
6920 64 0a 20 20 20 20 20 20 7c 20 50 61 64 64 69 63 28 72 64 2c 20 72 31 2c 20 63 73 74 29 20 2d 3e d.......|.Paddic(rd,.r1,.cst).->
6940 0a 20 20 20 20 20 20 20 20 20 20 62 65 67 69 6e 20 6d 61 74 63 68 20 65 63 6f 64 65 20 77 69 74 ...........begin.match.ecode.wit
6960 68 0a 20 20 20 20 20 20 20 20 20 20 7c 20 41 44 44 49 43 28 72 44 2c 20 72 41 2c 20 73 69 6d 6d h...........|.ADDIC(rD,.rA,.simm
6980 29 20 3a 3a 20 65 73 20 2d 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 66 77 0a 20 20 20 20 ).::.es.->...............fw.....
69a0 20 20 20 20 20 20 20 20 20 20 3e 3e 3e 20 6d 61 74 63 68 5f 69 72 65 67 73 20 72 64 20 20 72 44 ..........>>>.match_iregs.rd..rD
69c0 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3e 3e 3e 20 6d 61 74 63 68 5f 69 72 65 67 73 20 72 ...............>>>.match_iregs.r
69e0 31 20 20 72 41 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3e 3e 3e 20 6d 61 74 63 68 5f 63 73 1..rA...............>>>.match_cs
6a00 74 73 20 20 63 73 74 20 28 65 78 74 73 20 73 69 6d 6d 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 ts..cst.(exts.simm).............
6a20 20 20 3e 3e 3e 20 72 65 63 75 72 5f 73 69 6d 70 6c 0a 20 20 20 20 20 20 20 20 20 20 7c 20 5f 20 ..>>>.recur_simpl...........|._.
6a40 2d 3e 20 65 72 72 6f 72 0a 20 20 20 20 20 20 20 20 20 20 65 6e 64 0a 20 20 20 20 20 20 7c 20 50 ->.error...........end.......|.P
6a60 61 64 64 69 73 28 72 64 2c 20 72 31 2c 20 63 73 74 29 20 2d 3e 0a 20 20 20 20 20 20 20 20 20 20 addis(rd,.r1,.cst).->...........
6a80 62 65 67 69 6e 20 6d 61 74 63 68 20 65 63 6f 64 65 20 77 69 74 68 0a 20 20 20 20 20 20 20 20 20 begin.match.ecode.with..........
6aa0 20 7c 20 41 44 44 49 53 28 72 44 2c 20 72 41 2c 20 73 69 6d 6d 29 20 3a 3a 20 65 73 20 2d 3e 0a .|.ADDIS(rD,.rA,.simm).::.es.->.
6ac0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 66 77 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3e ..............fw...............>
6ae0 3e 3e 20 6d 61 74 63 68 5f 69 72 65 67 73 20 72 64 20 20 72 44 0a 20 20 20 20 20 20 20 20 20 20 >>.match_iregs.rd..rD...........
6b00 20 20 20 20 3e 3e 3e 20 6d 61 74 63 68 5f 69 72 65 67 73 20 72 31 20 20 72 41 0a 20 20 20 20 20 ....>>>.match_iregs.r1..rA......
6b20 20 20 20 20 20 20 20 20 20 3e 3e 3e 20 6d 61 74 63 68 5f 63 73 74 73 20 20 63 73 74 20 28 53 61 .........>>>.match_csts..cst.(Sa
6b40 66 65 33 32 2e 6f 66 5f 69 6e 74 20 73 69 6d 6d 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 fe32.of_int.simm)...............
6b60 3e 3e 3e 20 72 65 63 75 72 5f 73 69 6d 70 6c 0a 20 20 20 20 20 20 20 20 20 20 7c 20 5f 20 2d 3e >>>.recur_simpl...........|._.->
6b80 20 65 72 72 6f 72 0a 20 20 20 20 20 20 20 20 20 20 65 6e 64 0a 20 20 20 20 20 20 7c 20 50 61 64 .error...........end.......|.Pad
6ba0 64 7a 65 28 72 64 2c 20 72 31 29 20 2d 3e 0a 20 20 20 20 20 20 20 20 20 20 62 65 67 69 6e 20 6d dze(rd,.r1).->...........begin.m
6bc0 61 74 63 68 20 65 63 6f 64 65 20 77 69 74 68 0a 20 20 20 20 20 20 20 20 20 20 7c 20 41 44 44 5a atch.ecode.with...........|.ADDZ
6be0 45 78 28 72 44 2c 20 72 41 2c 20 6f 65 2c 20 72 63 29 20 3a 3a 20 65 73 20 2d 3e 0a 20 20 20 20 Ex(rD,.rA,.oe,.rc).::.es.->.....
6c00 20 20 20 20 20 20 20 20 20 20 66 77 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3e 3e 3e 20 6d ..........fw...............>>>.m
6c20 61 74 63 68 5f 69 72 65 67 73 20 72 64 20 20 20 20 72 44 0a 20 20 20 20 20 20 20 20 20 20 20 20 atch_iregs.rd....rD.............
6c40 20 20 3e 3e 3e 20 6d 61 74 63 68 5f 69 72 65 67 73 20 72 31 20 20 20 20 72 41 0a 20 20 20 20 20 ..>>>.match_iregs.r1....rA......
6c60 20 20 20 20 20 20 20 20 20 3e 3e 3e 20 6d 61 74 63 68 5f 62 6f 6f 6c 73 20 66 61 6c 73 65 20 6f .........>>>.match_bools.false.o
6c80 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3e 3e 3e 20 6d 61 74 63 68 5f 62 6f 6f 6c 73 20 e...............>>>.match_bools.
6ca0 66 61 6c 73 65 20 72 63 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3e 3e 3e 20 72 65 63 75 72 false.rc...............>>>.recur
6cc0 5f 73 69 6d 70 6c 0a 20 20 20 20 20 20 20 20 20 20 7c 20 5f 20 2d 3e 20 65 72 72 6f 72 0a 20 20 _simpl...........|._.->.error...
6ce0 20 20 20 20 20 20 20 20 65 6e 64 0a 20 20 20 20 20 20 7c 20 50 61 6c 6c 6f 63 66 72 61 6d 65 28 ........end.......|.Pallocframe(
6d00 73 7a 2c 20 6f 66 73 29 20 2d 3e 0a 20 20 20 20 20 20 20 20 20 20 62 65 67 69 6e 20 6d 61 74 63 sz,.ofs).->...........begin.matc
6d20 68 20 65 63 6f 64 65 20 77 69 74 68 0a 20 20 20 20 20 20 20 20 20 20 7c 20 53 54 57 55 28 72 53 h.ecode.with...........|.STWU(rS
6d40 2c 20 72 41 2c 20 64 29 20 3a 3a 20 65 73 20 2d 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ,.rA,.d).::.es.->...............
6d60 66 77 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3e 3e 3e 20 6d 61 74 63 68 5f 69 72 65 67 73 fw...............>>>.match_iregs
6d80 20 20 20 47 50 52 31 20 72 53 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3e 3e 3e 20 6d 61 74 ...GPR1.rS...............>>>.mat
6da0 63 68 5f 69 72 65 67 73 20 20 20 47 50 52 31 20 72 41 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 ch_iregs...GPR1.rA..............
6dc0 20 3e 3e 3e 20 6d 61 74 63 68 5f 7a 5f 69 6e 74 33 32 20 73 7a 20 20 20 28 49 6e 74 33 32 2e 6e .>>>.match_z_int32.sz...(Int32.n
6de0 65 67 20 28 65 78 74 73 20 64 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3e 3e 3e 20 6d eg.(exts.d))...............>>>.m
6e00 61 74 63 68 5f 7a 5f 69 6e 74 33 32 20 6f 66 73 20 20 30 6c 0a 20 20 20 20 20 20 20 20 20 20 20 atch_z_int32.ofs..0l............
6e20 20 20 20 3e 3e 3e 20 72 65 63 75 72 5f 73 69 6d 70 6c 0a 20 20 20 20 20 20 20 20 20 20 7c 20 20 ...>>>.recur_simpl...........|..
6e40 20 41 44 44 49 53 20 20 20 28 72 44 30 2c 20 72 41 30 2c 20 73 69 6d 6d 30 29 20 20 3a 3a 0a 20 .ADDIS...(rD0,.rA0,.simm0)..::..
6e60 20 20 20 20 20 20 20 20 20 20 20 20 20 4f 52 49 20 20 20 20 20 28 72 53 31 2c 20 72 41 31 2c 20 .............ORI.....(rS1,.rA1,.
6e80 75 69 6d 6d 31 29 20 20 3a 3a 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 53 54 57 55 58 20 20 uimm1)..::...............STWUX..
6ea0 20 28 72 53 32 2c 20 72 41 32 2c 20 72 42 32 29 20 20 20 20 3a 3a 20 65 73 20 2d 3e 0a 20 20 20 .(rS2,.rA2,.rB2)....::.es.->....
6ec0 20 20 20 20 20 20 20 20 20 20 20 66 77 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3e 3e 3e 20 ...........fw...............>>>.
6ee0 66 66 5f 65 66 20 5e 25 3d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 61 64 64 5f 6c 6f 67 20 ff_ef.^%=...............add_log.
6f00 28 45 52 52 4f 52 28 22 54 4f 44 4f 22 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3e 3e (ERROR("TODO"))...............>>
6f20 3e 20 63 6f 6d 70 61 72 65 5f 63 6f 64 65 20 63 73 20 65 73 20 28 49 6e 74 33 32 2e 61 64 64 20 >.compare_code.cs.es.(Int32.add.
6f40 31 32 6c 20 70 63 29 0a 20 20 20 20 20 20 20 20 20 20 7c 20 5f 20 2d 3e 20 65 72 72 6f 72 0a 20 12l.pc)...........|._.->.error..
6f60 20 20 20 20 20 20 20 20 20 65 6e 64 0a 20 20 20 20 20 20 7c 20 50 61 6e 64 63 28 72 64 2c 20 72 .........end.......|.Pandc(rd,.r
6f80 31 2c 20 72 32 29 20 2d 3e 0a 20 20 20 20 20 20 20 20 20 20 62 65 67 69 6e 20 6d 61 74 63 68 20 1,.r2).->...........begin.match.
6fa0 65 63 6f 64 65 20 77 69 74 68 0a 20 20 20 20 20 20 20 20 20 20 7c 20 41 4e 44 43 78 28 72 53 2c ecode.with...........|.ANDCx(rS,
6fc0 20 72 41 2c 20 72 42 2c 20 72 63 29 20 3a 3a 20 65 73 20 2d 3e 0a 20 20 20 20 20 20 20 20 20 20 .rA,.rB,.rc).::.es.->...........
6fe0 20 20 20 20 66 77 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3e 3e 3e 20 6d 61 74 63 68 5f 69 ....fw...............>>>.match_i
7000 72 65 67 73 20 72 64 20 20 20 20 72 41 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3e 3e 3e 20 regs.rd....rA...............>>>.
7020 6d 61 74 63 68 5f 69 72 65 67 73 20 72 31 20 20 20 20 72 53 0a 20 20 20 20 20 20 20 20 20 20 20 match_iregs.r1....rS............
7040 20 20 20 3e 3e 3e 20 6d 61 74 63 68 5f 69 72 65 67 73 20 72 32 20 20 20 20 72 42 0a 20 20 20 20 ...>>>.match_iregs.r2....rB.....
7060 20 20 20 20 20 20 20 20 20 20 3e 3e 3e 20 6d 61 74 63 68 5f 62 6f 6f 6c 73 20 66 61 6c 73 65 20 ..........>>>.match_bools.false.
7080 72 63 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3e 3e 3e 20 72 65 63 75 72 5f 73 69 6d 70 6c rc...............>>>.recur_simpl
70a0 0a 20 20 20 20 20 20 20 20 20 20 7c 20 5f 20 2d 3e 20 65 72 72 6f 72 0a 20 20 20 20 20 20 20 20 ...........|._.->.error.........
70c0 20 20 65 6e 64 0a 20 20 20 20 20 20 7c 20 50 61 6e 64 5f 28 72 64 2c 20 72 31 2c 20 72 32 29 20 ..end.......|.Pand_(rd,.r1,.r2).
70e0 2d 3e 0a 20 20 20 20 20 20 20 20 20 20 62 65 67 69 6e 20 6d 61 74 63 68 20 65 63 6f 64 65 20 77 ->...........begin.match.ecode.w
7100 69 74 68 0a 20 20 20 20 20 20 20 20 20 20 7c 20 41 4e 44 78 28 72 53 2c 20 72 41 2c 20 72 42 2c ith...........|.ANDx(rS,.rA,.rB,
7120 20 72 63 29 20 3a 3a 20 65 73 20 2d 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 66 77 0a 20 .rc).::.es.->...............fw..
7140 20 20 20 20 20 20 20 20 20 20 20 20 20 3e 3e 3e 20 6d 61 74 63 68 5f 69 72 65 67 73 20 72 64 20 .............>>>.match_iregs.rd.
7160 20 20 72 41 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3e 3e 3e 20 6d 61 74 63 68 5f 69 72 65 ..rA...............>>>.match_ire
7180 67 73 20 72 31 20 20 20 72 53 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3e 3e 3e 20 6d 61 74 gs.r1...rS...............>>>.mat
71a0 63 68 5f 69 72 65 67 73 20 72 32 20 20 20 72 42 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3e ch_iregs.r2...rB...............>
71c0 3e 3e 20 6d 61 74 63 68 5f 62 6f 6f 6c 73 20 74 72 75 65 20 72 63 0a 20 20 20 20 20 20 20 20 20 >>.match_bools.true.rc..........
71e0 20 20 20 20 20 3e 3e 3e 20 72 65 63 75 72 5f 73 69 6d 70 6c 0a 20 20 20 20 20 20 20 20 20 20 7c .....>>>.recur_simpl...........|
7200 20 5f 20 2d 3e 20 65 72 72 6f 72 0a 20 20 20 20 20 20 20 20 20 20 65 6e 64 0a 20 20 20 20 20 20 ._.->.error...........end.......
7220 7c 20 50 61 6e 64 69 73 5f 28 72 64 2c 20 72 31 2c 20 63 73 74 29 20 2d 3e 0a 20 20 20 20 20 20 |.Pandis_(rd,.r1,.cst).->.......
7240 20 20 20 20 62 65 67 69 6e 20 6d 61 74 63 68 20 65 63 6f 64 65 20 77 69 74 68 0a 20 20 20 20 20 ....begin.match.ecode.with......
7260 20 20 20 20 20 7c 20 41 4e 44 49 53 5f 28 72 53 2c 20 72 41 2c 20 75 69 6d 6d 29 20 3a 3a 20 65 .....|.ANDIS_(rS,.rA,.uimm).::.e
7280 73 20 2d 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 66 77 0a 20 20 20 20 20 20 20 20 20 20 s.->...............fw...........
72a0 20 20 20 20 3e 3e 3e 20 6d 61 74 63 68 5f 69 72 65 67 73 20 72 64 20 20 72 41 0a 20 20 20 20 20 ....>>>.match_iregs.rd..rA......
72c0 20 20 20 20 20 20 20 20 20 3e 3e 3e 20 6d 61 74 63 68 5f 69 72 65 67 73 20 72 31 20 20 72 53 0a .........>>>.match_iregs.r1..rS.
72e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3e 3e 3e 20 6d 61 74 63 68 5f 63 73 74 73 20 20 63 73 ..............>>>.match_csts..cs
7300 74 20 28 53 61 66 65 33 32 2e 6f 66 5f 69 6e 74 20 75 69 6d 6d 29 0a 20 20 20 20 20 20 20 20 20 t.(Safe32.of_int.uimm)..........
7320 20 20 20 20 20 3e 3e 3e 20 72 65 63 75 72 5f 73 69 6d 70 6c 0a 20 20 20 20 20 20 20 20 20 20 7c .....>>>.recur_simpl...........|
7340 20 5f 20 2d 3e 20 65 72 72 6f 72 0a 20 20 20 20 20 20 20 20 20 20 65 6e 64 0a 20 20 20 20 20 20 ._.->.error...........end.......
7360 7c 20 50 61 6e 64 69 5f 28 72 64 2c 20 72 31 2c 20 63 73 74 29 20 2d 3e 0a 20 20 20 20 20 20 20 |.Pandi_(rd,.r1,.cst).->........
7380 20 20 20 62 65 67 69 6e 20 6d 61 74 63 68 20 65 63 6f 64 65 20 77 69 74 68 0a 20 20 20 20 20 20 ...begin.match.ecode.with.......
73a0 20 20 20 20 7c 20 41 4e 44 49 5f 28 72 53 2c 20 72 41 2c 20 75 69 6d 6d 29 20 3a 3a 20 65 73 20 ....|.ANDI_(rS,.rA,.uimm).::.es.
73c0 2d 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 66 77 0a 20 20 20 20 20 20 20 20 20 20 20 20 ->...............fw.............
73e0 20 20 3e 3e 3e 20 6d 61 74 63 68 5f 69 72 65 67 73 20 72 64 20 20 72 41 0a 20 20 20 20 20 20 20 ..>>>.match_iregs.rd..rA........
7400 20 20 20 20 20 20 20 3e 3e 3e 20 6d 61 74 63 68 5f 69 72 65 67 73 20 72 31 20 20 72 53 0a 20 20 .......>>>.match_iregs.r1..rS...
7420 20 20 20 20 20 20 20 20 20 20 20 20 3e 3e 3e 20 6d 61 74 63 68 5f 63 73 74 73 20 20 63 73 74 20 ............>>>.match_csts..cst.
7440 28 53 61 66 65 33 32 2e 6f 66 5f 69 6e 74 20 75 69 6d 6d 29 0a 20 20 20 20 20 20 20 20 20 20 20 (Safe32.of_int.uimm)............
7460 20 20 20 3e 3e 3e 20 72 65 63 75 72 5f 73 69 6d 70 6c 0a 20 20 20 20 20 20 20 20 20 20 7c 20 5f ...>>>.recur_simpl...........|._
7480 20 2d 3e 20 65 72 72 6f 72 0a 20 20 20 20 20 20 20 20 20 20 65 6e 64 0a 20 20 20 20 20 20 7c 20 .->.error...........end.......|.
74a0 50 61 6e 6e 6f 74 28 65 66 2c 20 61 72 67 73 29 20 2d 3e 0a 20 20 20 20 20 20 20 20 20 20 66 77 Pannot(ef,.args).->...........fw
74c0 0a 20 20 20 20 20 20 20 20 20 20 3e 3e 3e 20 63 6f 6d 70 61 72 65 5f 63 6f 64 65 20 63 73 20 65 ...........>>>.compare_code.cs.e
74e0 63 6f 64 65 20 70 63 0a 20 20 20 20 20 20 7c 20 50 62 28 6c 62 6c 29 20 2d 3e 0a 20 20 20 20 20 code.pc.......|.Pb(lbl).->......
7500 20 20 20 20 20 62 65 67 69 6e 20 6d 61 74 63 68 20 65 63 6f 64 65 20 77 69 74 68 0a 20 20 20 20 .....begin.match.ecode.with.....
7520 20 20 20 20 20 20 7c 20 42 78 28 6c 69 2c 20 61 61 2c 20 6c 6b 29 20 3a 3a 20 65 73 20 2d 3e 0a ......|.Bx(li,.aa,.lk).::.es.->.
7540 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6c 65 74 20 6c 62 6c 76 61 64 64 72 20 3d 20 49 6e 74 ..............let.lblvaddr.=.Int
7560 33 32 2e 28 61 64 64 20 70 63 20 28 6d 75 6c 20 34 6c 20 28 65 78 74 73 20 6c 69 29 29 29 20 69 32.(add.pc.(mul.4l.(exts.li))).i
7580 6e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 66 77 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 n...............fw..............
75a0 20 3e 3e 3e 20 6d 61 74 63 68 5f 62 6f 6f 6c 73 20 20 66 61 6c 73 65 20 61 61 0a 20 20 20 20 20 .>>>.match_bools..false.aa......
75c0 20 20 20 20 20 20 20 20 20 3e 3e 3e 20 6d 61 74 63 68 5f 62 6f 6f 6c 73 20 20 66 61 6c 73 65 20 .........>>>.match_bools..false.
75e0 6c 6b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3e 3e 3e 20 6c 62 6c 6d 61 70 5f 75 6e 69 66 lk...............>>>.lblmap_unif
7600 79 20 6c 62 6c 20 20 20 6c 62 6c 76 61 64 64 72 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3e y.lbl...lblvaddr...............>
7620 3e 3d 20 72 65 63 75 72 5f 73 69 6d 70 6c 0a 20 20 20 20 20 20 20 20 20 20 7c 20 5f 20 2d 3e 20 >=.recur_simpl...........|._.->.
7640 65 72 72 6f 72 0a 20 20 20 20 20 20 20 20 20 20 65 6e 64 0a 20 20 20 20 20 20 7c 20 50 62 63 74 error...........end.......|.Pbct
7660 72 20 2d 3e 0a 20 20 20 20 20 20 20 20 20 20 62 65 67 69 6e 20 6d 61 74 63 68 20 65 63 6f 64 65 r.->...........begin.match.ecode
7680 20 77 69 74 68 0a 20 20 20 20 20 20 20 20 20 20 7c 20 42 43 43 54 52 78 28 62 6f 2c 20 62 69 2c .with...........|.BCCTRx(bo,.bi,
76a0 20 6c 6b 29 20 3a 3a 20 65 73 20 2d 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 66 77 0a 20 .lk).::.es.->...............fw..
76c0 20 20 20 20 20 20 20 20 20 20 20 20 20 3e 3e 3e 20 28 66 66 5f 65 66 20 5e 25 3d 0a 20 20 20 20 .............>>>.(ff_ef.^%=.....
76e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 62 69 74 6d 61 74 63 68 20 62 6f 20 77 69 74 68 0a 20 ..............bitmatch.bo.with..
7700 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7c 20 7b 20 74 72 75 65 3a 31 3b 20 66 61 6c .................|.{.true:1;.fal
7720 73 65 3a 31 3b 20 74 72 75 65 3a 31 3b 20 66 61 6c 73 65 3a 31 3b 20 66 61 6c 73 65 3a 31 20 7d se:1;.true:1;.false:1;.false:1.}
7740 20 2d 3e 20 69 64 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7c 20 7b 20 5f 20 7d .->.id...................|.{._.}
7760 20 2d 3e 20 61 64 64 5f 6c 6f 67 20 28 45 52 52 4f 52 28 22 62 69 74 6d 61 74 63 68 22 29 29 0a .->.add_log.(ERROR("bitmatch")).
7780 20 20 20 20 20 20 20 20 20 20 20 20 20 20 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3e 3e ..............)...............>>
77a0 3e 20 6d 61 74 63 68 5f 69 6e 74 73 20 20 30 20 20 20 20 20 62 69 0a 20 20 20 20 20 20 20 20 20 >.match_ints..0.....bi..........
77c0 20 20 20 20 20 3e 3e 3e 20 6d 61 74 63 68 5f 62 6f 6f 6c 73 20 66 61 6c 73 65 20 6c 6b 0a 20 20 .....>>>.match_bools.false.lk...
77e0 20 20 20 20 20 20 20 20 20 20 20 20 3e 3e 3e 20 72 65 63 75 72 5f 73 69 6d 70 6c 0a 20 20 20 20 ............>>>.recur_simpl.....
7800 20 20 20 20 20 20 7c 20 5f 20 2d 3e 20 65 72 72 6f 72 0a 20 20 20 20 20 20 20 20 20 20 65 6e 64 ......|._.->.error...........end
7820 0a 20 20 20 20 20 20 7c 20 50 62 63 74 72 6c 20 2d 3e 0a 20 20 20 20 20 20 20 20 20 20 62 65 67 .......|.Pbctrl.->...........beg
7840 69 6e 20 6d 61 74 63 68 20 65 63 6f 64 65 20 77 69 74 68 0a 20 20 20 20 20 20 20 20 20 20 7c 20 in.match.ecode.with...........|.
7860 42 43 43 54 52 78 28 62 6f 2c 20 62 69 2c 20 6c 6b 29 20 3a 3a 20 65 73 20 2d 3e 0a 20 20 20 20 BCCTRx(bo,.bi,.lk).::.es.->.....
7880 20 20 20 20 20 20 20 20 20 20 66 77 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3e 3e 3e 20 28 ..........fw...............>>>.(
78a0 66 66 5f 65 66 20 5e 25 3d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 62 69 74 6d ff_ef.^%=...................bitm
78c0 61 74 63 68 20 62 6f 20 77 69 74 68 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7c atch.bo.with...................|
78e0 20 7b 20 74 72 75 65 3a 31 3b 20 66 61 6c 73 65 3a 31 3b 20 74 72 75 65 3a 31 3b 20 66 61 6c 73 .{.true:1;.false:1;.true:1;.fals
7900 65 3a 31 3b 20 66 61 6c 73 65 3a 31 20 7d 20 2d 3e 20 69 64 0a 20 20 20 20 20 20 20 20 20 20 20 e:1;.false:1.}.->.id............
7920 20 20 20 20 20 20 20 7c 20 7b 20 5f 20 7d 20 2d 3e 20 61 64 64 5f 6c 6f 67 20 28 45 52 52 4f 52 .......|.{._.}.->.add_log.(ERROR
7940 28 22 62 69 74 6d 61 74 63 68 22 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 29 0a 20 20 ("bitmatch"))...............)...
7960 20 20 20 20 20 20 20 20 20 20 20 20 3e 3e 3e 20 6d 61 74 63 68 5f 69 6e 74 73 20 20 30 20 20 20 ............>>>.match_ints..0...
7980 20 62 69 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3e 3e 3e 20 6d 61 74 63 68 5f 62 6f 6f 6c .bi...............>>>.match_bool
79a0 73 20 74 72 75 65 20 6c 6b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3e 3e 3e 20 72 65 63 75 s.true.lk...............>>>.recu
79c0 72 5f 73 69 6d 70 6c 0a 20 20 20 20 20 20 20 20 20 20 7c 20 5f 20 2d 3e 20 65 72 72 6f 72 0a 20 r_simpl...........|._.->.error..
79e0 20 20 20 20 20 20 20 20 20 65 6e 64 0a 20 20 20 20 20 20 7c 20 50 62 66 28 62 69 74 2c 20 6c 62 .........end.......|.Pbf(bit,.lb
7a00 6c 29 20 2d 3e 0a 20 20 20 20 20 20 20 20 20 20 62 65 67 69 6e 20 6d 61 74 63 68 20 65 63 6f 64 l).->...........begin.match.ecod
7a20 65 20 77 69 74 68 0a 20 20 20 20 20 20 20 20 20 20 7c 20 42 43 78 28 62 6f 2c 20 62 69 2c 20 62 e.with...........|.BCx(bo,.bi,.b
7a40 64 2c 20 61 61 2c 20 6c 6b 29 20 3a 3a 20 65 73 20 2d 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 d,.aa,.lk).::.es.->.............
7a60 20 20 6c 65 74 20 6c 62 6c 76 61 64 64 72 20 3d 20 49 6e 74 33 32 2e 28 61 64 64 20 70 63 20 28 ..let.lblvaddr.=.Int32.(add.pc.(
7a80 6d 75 6c 20 34 6c 20 28 65 78 74 73 20 62 64 29 29 29 20 69 6e 0a 20 20 20 20 20 20 20 20 20 20 mul.4l.(exts.bd))).in...........
7aa0 20 20 20 20 66 77 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3e 3e 3e 20 28 66 66 5f 65 66 20 ....fw...............>>>.(ff_ef.
7ac0 5e 25 3d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 62 69 74 6d 61 74 63 68 20 62 ^%=...................bitmatch.b
7ae0 6f 20 77 69 74 68 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7c 20 7b 20 66 61 6c o.with...................|.{.fal
7b00 73 65 3a 31 3b 20 66 61 6c 73 65 3a 31 3b 20 74 72 75 65 3a 31 3b 20 66 61 6c 73 65 3a 31 3b 20 se:1;.false:1;.true:1;.false:1;.
7b20 66 61 6c 73 65 3a 31 20 7d 20 2d 3e 20 69 64 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 false:1.}.->.id.................
7b40 20 20 7c 20 7b 20 5f 20 7d 20 2d 3e 20 61 64 64 5f 6c 6f 67 20 28 45 52 52 4f 52 28 22 62 69 74 ..|.{._.}.->.add_log.(ERROR("bit
7b60 6d 61 74 63 68 22 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 29 0a 20 20 20 20 20 20 20 match"))...............)........
7b80 20 20 20 20 20 20 20 3e 3e 3e 20 6d 61 74 63 68 5f 63 72 62 69 74 73 20 62 69 74 20 20 20 62 69 .......>>>.match_crbits.bit...bi
7ba0 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3e 3e 3e 20 6c 62 6c 6d 61 70 5f 75 6e 69 66 79 20 ...............>>>.lblmap_unify.
7bc0 6c 62 6c 20 20 20 6c 62 6c 76 61 64 64 72 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3e 3e 3f lbl...lblvaddr...............>>?
7be0 20 6d 61 74 63 68 5f 62 6f 6f 6c 73 20 20 66 61 6c 73 65 20 61 61 0a 20 20 20 20 20 20 20 20 20 .match_bools..false.aa..........
7c00 20 20 20 20 20 3e 3e 3f 20 6d 61 74 63 68 5f 62 6f 6f 6c 73 20 20 66 61 6c 73 65 20 6c 6b 0a 20 .....>>?.match_bools..false.lk..
7c20 20 20 20 20 20 20 20 20 20 20 20 20 20 3e 3e 3d 20 72 65 63 75 72 5f 73 69 6d 70 6c 0a 20 20 20 .............>>=.recur_simpl....
7c40 20 20 20 20 20 20 20 7c 20 5f 20 2d 3e 20 65 72 72 6f 72 0a 20 20 20 20 20 20 20 20 20 20 65 6e .......|._.->.error...........en
7c60 64 0a 20 20 20 20 20 20 7c 20 50 62 6c 28 69 64 65 6e 74 29 20 2d 3e 0a 20 20 20 20 20 20 20 20 d.......|.Pbl(ident).->.........
7c80 20 20 62 65 67 69 6e 20 6d 61 74 63 68 20 65 63 6f 64 65 20 77 69 74 68 0a 20 20 20 20 20 20 20 ..begin.match.ecode.with........
7ca0 20 20 20 7c 20 42 78 28 6c 69 2c 20 61 61 2c 20 6c 6b 29 20 3a 3a 20 65 73 20 2d 3e 0a 20 20 20 ...|.Bx(li,.aa,.lk).::.es.->....
7cc0 20 20 20 20 20 20 20 20 20 20 20 6c 65 74 20 64 65 73 74 20 3d 20 49 6e 74 33 32 2e 28 61 64 64 ...........let.dest.=.Int32.(add
7ce0 20 70 63 20 28 6d 75 6c 20 34 6c 20 28 65 78 74 73 20 6c 69 29 29 29 20 69 6e 0a 20 20 20 20 20 .pc.(mul.4l.(exts.li))).in......
7d00 20 20 20 20 20 20 20 20 20 66 77 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3e 3e 3e 20 6d 61 .........fw...............>>>.ma
7d20 74 63 68 5f 62 6f 6f 6c 73 20 66 61 6c 73 65 20 61 61 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 tch_bools.false.aa..............
7d40 20 3e 3e 3e 20 6d 61 74 63 68 5f 62 6f 6f 6c 73 20 74 72 75 65 20 20 6c 6b 0a 20 20 20 20 20 20 .>>>.match_bools.true..lk.......
7d60 20 20 20 20 20 20 20 20 3e 3e 3e 20 28 66 66 5f 73 66 20 5e 25 3d 3f 20 69 64 6d 61 70 5f 75 6e ........>>>.(ff_sf.^%=?.idmap_un
7d80 69 66 79 20 69 64 65 6e 74 20 64 65 73 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3e 3e ify.ident.dest)...............>>
7da0 3d 20 72 65 63 75 72 5f 73 69 6d 70 6c 0a 20 20 20 20 20 20 20 20 20 20 7c 20 5f 20 2d 3e 20 65 =.recur_simpl...........|._.->.e
7dc0 72 72 6f 72 0a 20 20 20 20 20 20 20 20 20 20 65 6e 64 0a 20 20 20 20 20 20 7c 20 50 62 6c 72 20 rror...........end.......|.Pblr.
7de0 2d 3e 0a 20 20 20 20 20 20 20 20 20 20 62 65 67 69 6e 20 6d 61 74 63 68 20 65 63 6f 64 65 20 77 ->...........begin.match.ecode.w
7e00 69 74 68 0a 20 20 20 20 20 20 20 20 20 20 7c 20 42 43 4c 52 78 28 62 6f 2c 20 62 69 2c 20 6c 6b ith...........|.BCLRx(bo,.bi,.lk
7e20 29 20 3a 3a 20 65 73 20 2d 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 66 77 0a 20 20 20 20 ).::.es.->...............fw.....
7e40 20 20 20 20 20 20 20 20 20 20 3e 3e 3e 20 28 66 66 5f 65 66 20 5e 25 3d 0a 20 20 20 20 20 20 20 ..........>>>.(ff_ef.^%=........
7e60 20 20 20 20 20 20 20 20 20 20 20 62 69 74 6d 61 74 63 68 20 62 6f 20 77 69 74 68 0a 20 20 20 20 ...........bitmatch.bo.with.....
7e80 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7c 20 7b 20 74 72 75 65 3a 31 3b 20 66 61 6c 73 65 3a ..............|.{.true:1;.false:
7ea0 31 3b 20 74 72 75 65 3a 31 3b 20 66 61 6c 73 65 3a 31 3b 20 66 61 6c 73 65 3a 31 20 7d 20 2d 3e 1;.true:1;.false:1;.false:1.}.->
7ec0 20 69 64 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7c 20 7b 20 5f 20 7d 20 2d 3e .id...................|.{._.}.->
7ee0 20 61 64 64 5f 6c 6f 67 20 28 45 52 52 4f 52 28 22 62 69 74 6d 61 74 63 68 22 29 29 0a 20 20 20 .add_log.(ERROR("bitmatch"))....
7f00 20 20 20 20 20 20 20 20 20 20 20 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3e 3e 3e 20 6d ...........)...............>>>.m
7f20 61 74 63 68 5f 69 6e 74 73 20 20 30 20 20 20 20 20 62 69 0a 20 20 20 20 20 20 20 20 20 20 20 20 atch_ints..0.....bi.............
7f40 20 20 3e 3e 3e 20 6d 61 74 63 68 5f 62 6f 6f 6c 73 20 66 61 6c 73 65 20 6c 6b 0a 20 20 20 20 20 ..>>>.match_bools.false.lk......
7f60 20 20 20 20 20 20 20 20 20 3e 3e 3e 20 72 65 63 75 72 5f 73 69 6d 70 6c 0a 20 20 20 20 20 20 20 .........>>>.recur_simpl........
7f80 20 20 20 7c 20 5f 20 2d 3e 20 65 72 72 6f 72 0a 20 20 20 20 20 20 20 20 20 20 65 6e 64 0a 20 20 ...|._.->.error...........end...
7fa0 20 20 20 20 7c 20 50 62 73 28 69 64 65 6e 74 29 20 2d 3e 0a 20 20 20 20 20 20 20 20 20 20 62 65 ....|.Pbs(ident).->...........be
7fc0 67 69 6e 20 6d 61 74 63 68 20 65 63 6f 64 65 20 77 69 74 68 0a 20 20 20 20 20 20 20 20 20 20 7c gin.match.ecode.with...........|
7fe0 20 42 78 28 6c 69 2c 20 61 61 2c 20 6c 6b 29 20 3a 3a 20 65 73 20 2d 3e 0a 20 20 20 20 20 20 20 .Bx(li,.aa,.lk).::.es.->........
8000 20 20 20 20 20 20 20 6c 65 74 20 64 65 73 74 20 3d 20 49 6e 74 33 32 2e 28 61 64 64 20 70 63 20 .......let.dest.=.Int32.(add.pc.
8020 28 6d 75 6c 20 34 6c 20 28 65 78 74 73 20 6c 69 29 29 29 20 69 6e 0a 20 20 20 20 20 20 20 20 20 (mul.4l.(exts.li))).in..........
8040 20 20 20 20 20 66 77 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3e 3e 3e 20 6d 61 74 63 68 5f .....fw...............>>>.match_
8060 62 6f 6f 6c 73 20 66 61 6c 73 65 20 61 61 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3e 3e 3e bools.false.aa...............>>>
8080 20 6d 61 74 63 68 5f 62 6f 6f 6c 73 20 66 61 6c 73 65 20 6c 6b 0a 20 20 20 20 20 20 20 20 20 20 .match_bools.false.lk...........
80a0 20 20 20 20 3e 3e 3e 20 28 66 66 5f 73 66 20 5e 25 3d 3f 20 69 64 6d 61 70 5f 75 6e 69 66 79 20 ....>>>.(ff_sf.^%=?.idmap_unify.
80c0 69 64 65 6e 74 20 64 65 73 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3e 3e 3d 20 72 65 ident.dest)...............>>=.re
80e0 63 75 72 5f 73 69 6d 70 6c 0a 20 20 20 20 20 20 20 20 20 20 7c 20 5f 20 2d 3e 20 65 72 72 6f 72 cur_simpl...........|._.->.error
8100 0a 20 20 20 20 20 20 20 20 20 20 65 6e 64 0a 20 20 20 20 20 20 7c 20 50 62 74 28 62 69 74 2c 20 ...........end.......|.Pbt(bit,.
8120 6c 62 6c 29 20 2d 3e 0a 20 20 20 20 20 20 20 20 20 20 62 65 67 69 6e 20 6d 61 74 63 68 20 65 63 lbl).->...........begin.match.ec
8140 6f 64 65 20 77 69 74 68 0a 20 20 20 20 20 20 20 20 20 20 7c 20 42 43 78 28 62 6f 2c 20 62 69 2c ode.with...........|.BCx(bo,.bi,
8160 20 62 64 2c 20 61 61 2c 20 6c 6b 29 20 3a 3a 20 65 73 20 2d 3e 0a 20 20 20 20 20 20 20 20 20 20 .bd,.aa,.lk).::.es.->...........
8180 20 20 20 20 6c 65 74 20 6c 62 6c 76 61 64 64 72 20 3d 20 49 6e 74 33 32 2e 28 61 64 64 20 70 63 ....let.lblvaddr.=.Int32.(add.pc
81a0 20 28 6d 75 6c 20 34 6c 20 28 65 78 74 73 20 62 64 29 29 29 20 69 6e 0a 20 20 20 20 20 20 20 20 .(mul.4l.(exts.bd))).in.........
81c0 20 20 20 20 20 20 66 77 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3e 3e 3e 20 28 66 66 5f 65 ......fw...............>>>.(ff_e
81e0 66 20 5e 25 3d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 62 69 74 6d 61 74 63 68 f.^%=...................bitmatch
8200 20 62 6f 20 77 69 74 68 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7c 20 7b 20 66 .bo.with...................|.{.f
8220 61 6c 73 65 3a 31 3b 20 74 72 75 65 3a 31 3b 20 74 72 75 65 3a 31 3b 20 66 61 6c 73 65 3a 31 3b alse:1;.true:1;.true:1;.false:1;
8240 20 66 61 6c 73 65 3a 31 20 7d 20 2d 3e 20 69 64 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .false:1.}.->.id................
8260 20 20 20 7c 20 7b 20 5f 20 7d 20 2d 3e 20 61 64 64 5f 6c 6f 67 20 28 45 52 52 4f 52 28 22 62 69 ...|.{._.}.->.add_log.(ERROR("bi
8280 74 6d 61 74 63 68 22 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 29 0a 20 20 20 20 20 20 tmatch"))...............).......
82a0 20 20 20 20 20 20 20 20 3e 3e 3e 20 6d 61 74 63 68 5f 63 72 62 69 74 73 20 62 69 74 20 20 20 62 ........>>>.match_crbits.bit...b
82c0 69 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3e 3e 3e 20 6c 62 6c 6d 61 70 5f 75 6e 69 66 79 i...............>>>.lblmap_unify
82e0 20 6c 62 6c 20 20 20 6c 62 6c 76 61 64 64 72 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3e 3e .lbl...lblvaddr...............>>
8300 3f 20 6d 61 74 63 68 5f 62 6f 6f 6c 73 20 20 66 61 6c 73 65 20 61 61 0a 20 20 20 20 20 20 20 20 ?.match_bools..false.aa.........
8320 20 20 20 20 20 20 3e 3e 3f 20 6d 61 74 63 68 5f 62 6f 6f 6c 73 20 20 66 61 6c 73 65 20 6c 6b 0a ......>>?.match_bools..false.lk.
8340 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3e 3e 3d 20 72 65 63 75 72 5f 73 69 6d 70 6c 0a 20 20 ..............>>=.recur_simpl...
8360 20 20 20 20 20 20 20 20 7c 20 5f 20 2d 3e 20 65 72 72 6f 72 0a 20 20 20 20 20 20 20 20 20 20 65 ........|._.->.error...........e
8380 6e 64 0a 20 20 20 20 20 20 7c 20 50 62 74 62 6c 28 72 65 67 2c 20 74 61 62 6c 65 29 20 2d 3e 0a nd.......|.Pbtbl(reg,.table).->.
83a0 20 20 20 20 20 20 20 20 20 20 62 65 67 69 6e 20 6d 61 74 63 68 20 65 63 6f 64 65 20 77 69 74 68 ..........begin.match.ecode.with
83c0 0a 20 20 20 20 20 20 20 20 20 20 7c 20 20 20 41 44 44 49 53 20 28 72 44 30 2c 20 72 41 30 2c 20 ...........|...ADDIS.(rD0,.rA0,.
83e0 73 69 6d 6d 30 29 20 3a 3a 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 4c 57 5a 20 20 20 28 72 simm0).::...............LWZ...(r
8400 44 31 2c 20 72 41 31 2c 20 64 31 29 20 20 20 20 3a 3a 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 D1,.rA1,.d1)....::..............
8420 20 4d 54 53 50 52 20 28 72 53 32 2c 20 73 70 72 32 29 20 20 20 20 20 20 20 3a 3a 0a 20 20 20 20 .MTSPR.(rS2,.spr2).......::.....
8440 20 20 20 20 20 20 20 20 20 20 42 43 43 54 52 78 28 62 6f 33 2c 20 62 69 33 2c 20 72 63 33 29 20 ..........BCCTRx(bo3,.bi3,.rc3).
8460 20 20 3a 3a 20 65 73 20 2d 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6c 65 74 20 74 62 6c ..::.es.->...............let.tbl
8480 76 61 64 64 72 20 3d 20 49 6e 74 33 32 2e 28 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 vaddr.=.Int32.(.................
84a0 61 64 64 20 28 73 68 69 66 74 5f 6c 65 66 74 20 28 53 61 66 65 33 32 2e 6f 66 5f 69 6e 74 20 73 add.(shift_left.(Safe32.of_int.s
84c0 69 6d 6d 30 29 20 31 36 29 20 28 65 78 74 73 20 64 31 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 imm0).16).(exts.d1).............
84e0 20 20 29 20 69 6e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6c 65 74 20 74 62 6c 73 69 7a 65 ..).in...............let.tblsize
8500 20 3d 20 28 33 32 20 2a 20 4c 69 73 74 2e 6c 65 6e 67 74 68 20 74 61 62 6c 65 29 20 69 6e 0a 20 .=.(32.*.List.length.table).in..
8520 20 20 20 20 20 20 20 20 20 20 20 20 20 66 77 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3e 3e .............fw...............>>
8540 3e 20 6d 61 74 63 68 5f 69 72 65 67 73 20 47 50 52 31 32 20 72 44 30 0a 20 20 20 20 20 20 20 20 >.match_iregs.GPR12.rD0.........
8560 20 20 20 20 20 20 3e 3e 3e 20 6d 61 74 63 68 5f 69 72 65 67 73 20 72 65 67 20 20 20 72 41 30 0a ......>>>.match_iregs.reg...rA0.
8580 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3e 3e 3e 20 6d 61 74 63 68 5f 69 72 65 67 73 20 47 50 ..............>>>.match_iregs.GP
85a0 52 31 32 20 72 44 31 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3e 3e 3e 20 6d 61 74 63 68 5f R12.rD1...............>>>.match_
85c0 69 72 65 67 73 20 47 50 52 31 32 20 72 41 31 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3e 3e iregs.GPR12.rA1...............>>
85e0 3e 20 6d 61 74 63 68 5f 69 72 65 67 73 20 47 50 52 31 32 20 72 53 32 0a 20 20 20 20 20 20 20 20 >.match_iregs.GPR12.rS2.........
8600 20 20 20 20 20 20 3e 3e 3e 20 6d 61 74 63 68 5f 63 74 72 20 20 20 73 70 72 32 0a 20 20 20 20 20 ......>>>.match_ctr...spr2......
8620 20 20 20 20 20 20 20 20 20 3e 3e 3e 20 28 66 66 5f 65 66 20 5e 25 3d 0a 20 20 20 20 20 20 20 20 .........>>>.(ff_ef.^%=.........
8640 20 20 20 20 20 20 20 20 20 20 62 69 74 6d 61 74 63 68 20 62 6f 33 20 77 69 74 68 0a 20 20 20 20 ..........bitmatch.bo3.with.....
8660 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7c 20 7b 20 74 72 75 65 3a 31 3b 20 66 61 6c 73 65 3a ..............|.{.true:1;.false:
8680 31 3b 20 74 72 75 65 3a 31 3b 20 66 61 6c 73 65 3a 31 3b 20 66 61 6c 73 65 3a 31 20 7d 20 2d 3e 1;.true:1;.false:1;.false:1.}.->
86a0 20 69 64 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7c 20 7b 20 5f 20 7d 20 2d 3e .id...................|.{._.}.->
86c0 20 61 64 64 5f 6c 6f 67 20 28 45 52 52 4f 52 28 22 62 69 74 6d 61 74 63 68 22 29 29 0a 20 20 20 .add_log.(ERROR("bitmatch"))....
86e0 20 20 20 20 20 20 20 20 20 20 20 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3e 3e 3e 20 6d ...........)...............>>>.m
8700 61 74 63 68 5f 69 6e 74 73 20 20 20 30 20 20 20 20 20 62 69 33 0a 20 20 20 20 20 20 20 20 20 20 atch_ints...0.....bi3...........
8720 20 20 20 20 3e 3e 3e 20 6d 61 74 63 68 5f 62 6f 6f 6c 73 20 20 66 61 6c 73 65 20 72 63 33 0a 20 ....>>>.match_bools..false.rc3..
8740 20 20 20 20 20 20 20 20 20 20 20 20 20 3e 3e 3e 20 6d 61 74 63 68 5f 6a 6d 70 74 62 6c 20 74 61 .............>>>.match_jmptbl.ta
8760 62 6c 65 20 74 62 6c 76 61 64 64 72 20 74 62 6c 73 69 7a 65 0a 20 20 20 20 20 20 20 20 20 20 20 ble.tblvaddr.tblsize............
8780 20 20 20 3e 3e 3d 20 63 6f 6d 70 61 72 65 5f 63 6f 64 65 20 63 73 20 65 73 20 28 49 6e 74 33 32 ...>>=.compare_code.cs.es.(Int32
87a0 2e 61 64 64 20 31 36 6c 20 70 63 29 0a 20 20 20 20 20 20 20 20 20 20 7c 20 5f 20 2d 3e 20 65 72 .add.16l.pc)...........|._.->.er
87c0 72 6f 72 0a 20 20 20 20 20 20 20 20 20 20 65 6e 64 0a 20 20 20 20 20 20 7c 20 50 62 75 69 6c 74 ror...........end.......|.Pbuilt
87e0 69 6e 28 65 66 2c 20 61 72 67 73 2c 20 72 65 73 29 20 2d 3e 0a 20 20 20 20 20 20 20 20 20 20 62 in(ef,.args,.res).->...........b
8800 65 67 69 6e 20 6d 61 74 63 68 20 65 66 20 77 69 74 68 0a 20 20 20 20 20 20 20 20 20 20 7c 20 45 egin.match.ef.with...........|.E
8820 46 5f 62 75 69 6c 74 69 6e 28 6e 61 6d 65 2c 20 73 67 29 20 2d 3e 0a 20 20 20 20 20 20 20 20 20 F_builtin(name,.sg).->..........
8840 20 20 20 20 20 62 65 67 69 6e 20 6d 61 74 63 68 20 48 61 73 68 74 62 6c 2e 66 69 6e 64 0a 20 20 .....begin.match.Hashtbl.find...
8860 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 66 77 20 7c 2e 20 66 66 5f 73 66 29 2e 69 64 ................(fw.|..ff_sf).id
8880 65 6e 74 5f 74 6f 5f 6e 61 6d 65 20 6e 61 6d 65 2c 20 61 72 67 73 2c 20 72 65 73 20 77 69 74 68 ent_to_name.name,.args,.res.with
88a0 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7c 20 22 5f 5f 62 75 69 6c 74 69 6e 5f ...................|."__builtin_
88c0 6d 75 6c 68 77 22 2c 20 5b 49 52 20 61 31 3b 20 49 52 20 61 32 5d 2c 20 49 52 20 72 65 73 20 2d mulhw",.[IR.a1;.IR.a2],.IR.res.-
88e0 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 62 65 67 69 6e 20 6d 61 >.......................begin.ma
8900 74 63 68 20 65 63 6f 64 65 20 77 69 74 68 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 tch.ecode.with..................
8920 20 20 20 20 20 7c 20 4d 55 4c 48 57 78 28 72 44 2c 20 72 41 2c 20 72 42 2c 20 72 63 29 20 3a 3a .....|.MULHWx(rD,.rA,.rB,.rc).::
8940 20 65 73 20 2d 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .es.->..........................
8960 20 66 77 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3e 3e .fw...........................>>
8980 3e 20 6d 61 74 63 68 5f 69 72 65 67 73 20 72 65 73 20 20 20 72 44 0a 20 20 20 20 20 20 20 20 20 >.match_iregs.res...rD..........
89a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3e 3e 3e 20 6d 61 74 63 68 5f 69 72 65 67 73 .................>>>.match_iregs
89c0 20 61 31 20 20 20 20 72 41 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .a1....rA.......................
89e0 20 20 20 20 3e 3e 3e 20 6d 61 74 63 68 5f 69 72 65 67 73 20 61 32 20 20 20 20 72 42 0a 20 20 20 ....>>>.match_iregs.a2....rB....
8a00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3e 3e 3e 20 6d 61 74 63 68 .......................>>>.match
8a20 5f 62 6f 6f 6c 73 20 66 61 6c 73 65 20 72 63 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 _bools.false.rc.................
8a40 20 20 20 20 20 20 20 20 20 20 3e 3e 3e 20 72 65 63 75 72 5f 73 69 6d 70 6c 0a 20 20 20 20 20 20 ..........>>>.recur_simpl.......
8a60 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7c 20 5f 20 2d 3e 20 65 72 72 6f 72 0a 20 20 20 ................|._.->.error....
8a80 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 65 6e 64 0a 20 20 20 20 20 20 20 20 20 ...................end..........
8aa0 20 20 20 20 20 20 20 20 20 7c 20 22 5f 5f 62 75 69 6c 74 69 6e 5f 6d 75 6c 68 77 75 22 2c 20 5b .........|."__builtin_mulhwu",.[
8ac0 49 52 20 61 31 3b 20 49 52 20 61 32 5d 2c 20 49 52 20 72 65 73 20 2d 3e 0a 20 20 20 20 20 20 20 IR.a1;.IR.a2],.IR.res.->........
8ae0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 62 65 67 69 6e 20 6d 61 74 63 68 20 65 63 6f 64 65 ...............begin.match.ecode
8b00 20 77 69 74 68 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7c 20 4d 55 .with.......................|.MU
8b20 4c 48 57 55 78 28 72 44 2c 20 72 41 2c 20 72 42 2c 20 72 63 29 20 3a 3a 20 65 73 20 2d 3e 0a 20 LHWUx(rD,.rA,.rB,.rc).::.es.->..
8b40 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 66 77 0a 20 20 20 20 .........................fw.....
8b60 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3e 3e 3e 20 6d 61 74 63 68 5f ......................>>>.match_
8b80 69 72 65 67 73 20 72 65 73 20 20 20 72 44 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 iregs.res...rD..................
8ba0 20 20 20 20 20 20 20 20 20 3e 3e 3e 20 6d 61 74 63 68 5f 69 72 65 67 73 20 61 31 20 20 20 20 72 .........>>>.match_iregs.a1....r
8bc0 41 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3e 3e 3e 20 A...........................>>>.
8be0 6d 61 74 63 68 5f 69 72 65 67 73 20 61 32 20 20 20 20 72 42 0a 20 20 20 20 20 20 20 20 20 20 20 match_iregs.a2....rB............
8c00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3e 3e 3e 20 6d 61 74 63 68 5f 62 6f 6f 6c 73 20 66 ...............>>>.match_bools.f
8c20 61 6c 73 65 20 72 63 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 alse.rc.........................
8c40 20 20 3e 3e 3e 20 72 65 63 75 72 5f 73 69 6d 70 6c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ..>>>.recur_simpl...............
8c60 20 20 20 20 20 20 20 20 7c 20 5f 20 2d 3e 20 65 72 72 6f 72 0a 20 20 20 20 20 20 20 20 20 20 20 ........|._.->.error............
8c80 20 20 20 20 20 20 20 20 20 20 20 65 6e 64 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ...........end..................
8ca0 20 7c 20 22 5f 5f 62 75 69 6c 74 69 6e 5f 63 6e 74 6c 7a 22 2c 20 5b 49 52 20 61 31 5d 2c 20 49 .|."__builtin_cntlz",.[IR.a1],.I
8cc0 52 20 72 65 73 20 2d 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 62 R.res.->.......................b
8ce0 65 67 69 6e 20 6d 61 74 63 68 20 65 63 6f 64 65 20 77 69 74 68 0a 20 20 20 20 20 20 20 20 20 20 egin.match.ecode.with...........
8d00 20 20 20 20 20 20 20 20 20 20 20 20 7c 20 43 4e 54 4c 5a 57 78 28 72 53 2c 20 72 41 2c 20 72 63 ............|.CNTLZWx(rS,.rA,.rc
8d20 29 20 3a 3a 20 65 73 20 2d 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ).::.es.->......................
8d40 20 20 20 20 20 66 77 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .....fw.........................
8d60 20 20 3e 3e 3e 20 6d 61 74 63 68 5f 69 72 65 67 73 20 61 31 20 20 20 20 72 53 0a 20 20 20 20 20 ..>>>.match_iregs.a1....rS......
8d80 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3e 3e 3e 20 6d 61 74 63 68 5f 69 .....................>>>.match_i
8da0 72 65 67 73 20 72 65 73 20 20 20 72 41 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 regs.res...rA...................
8dc0 20 20 20 20 20 20 20 20 3e 3e 3e 20 6d 61 74 63 68 5f 62 6f 6f 6c 73 20 66 61 6c 73 65 20 72 63 ........>>>.match_bools.false.rc
8de0 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3e 3e 3e 20 72 ...........................>>>.r
8e00 65 63 75 72 5f 73 69 6d 70 6c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ecur_simpl......................
8e20 20 7c 20 5f 20 2d 3e 20 65 72 72 6f 72 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .|._.->.error...................
8e40 20 20 20 20 65 6e 64 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7c 20 22 5f 5f 62 ....end...................|."__b
8e60 75 69 6c 74 69 6e 5f 62 73 77 61 70 22 2c 20 5b 49 52 20 61 31 5d 2c 20 49 52 20 72 65 73 20 2d uiltin_bswap",.[IR.a1],.IR.res.-
8e80 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 62 65 67 69 6e 20 6d 61 >.......................begin.ma
8ea0 74 63 68 20 65 63 6f 64 65 20 77 69 74 68 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 tch.ecode.with..................
8ec0 20 20 20 20 20 7c 20 20 20 53 54 57 55 20 28 72 53 30 2c 20 72 41 30 2c 20 64 30 29 20 20 20 20 .....|...STWU.(rS0,.rA0,.d0)....
8ee0 3a 3a 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 4c 57 42 ::...........................LWB
8f00 52 58 28 72 44 31 2c 20 72 41 31 2c 20 72 42 31 29 20 20 20 3a 3a 0a 20 20 20 20 20 20 20 20 20 RX(rD1,.rA1,.rB1)...::..........
8f20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 41 44 44 49 20 28 72 44 32 2c 20 72 41 32 2c .................ADDI.(rD2,.rA2,
8f40 20 73 69 6d 6d 32 29 20 3a 3a 20 65 73 20 2d 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .simm2).::.es.->................
8f60 20 20 20 20 20 20 20 20 20 20 20 66 77 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ...........fw...................
8f80 20 20 20 20 20 20 20 20 3e 3e 3e 20 6d 61 74 63 68 5f 69 72 65 67 73 20 20 61 31 20 20 20 20 72 ........>>>.match_iregs..a1....r
8fa0 53 30 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3e 3e 3e S0...........................>>>
8fc0 20 6d 61 74 63 68 5f 69 72 65 67 73 20 20 47 50 52 31 20 20 72 41 30 0a 20 20 20 20 20 20 20 20 .match_iregs..GPR1..rA0.........
8fe0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3e 3e 3e 20 6d 61 74 63 68 5f 69 6e 74 33 ..................>>>.match_int3
9000 32 73 20 28 2d 38 6c 29 20 28 65 78 74 73 20 64 30 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 2s.(-8l).(exts.d0)..............
9020 20 20 20 20 20 20 20 20 20 20 20 20 20 3e 3e 3e 20 6d 61 74 63 68 5f 69 72 65 67 73 20 20 72 65 .............>>>.match_iregs..re
9040 73 20 20 20 72 44 31 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 s...rD1.........................
9060 20 20 3e 3e 3e 20 6d 61 74 63 68 5f 69 72 65 67 73 20 20 47 50 52 30 20 20 72 41 31 0a 20 20 20 ..>>>.match_iregs..GPR0..rA1....
9080 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3e 3e 3e 20 6d 61 74 63 68 .......................>>>.match
90a0 5f 69 72 65 67 73 20 20 47 50 52 31 20 20 72 42 31 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 _iregs..GPR1..rB1...............
90c0 20 20 20 20 20 20 20 20 20 20 20 20 3e 3e 3e 20 6d 61 74 63 68 5f 69 72 65 67 73 20 20 47 50 52 ............>>>.match_iregs..GPR
90e0 31 20 20 72 44 32 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 1..rD2..........................
9100 20 3e 3e 3e 20 6d 61 74 63 68 5f 69 72 65 67 73 20 20 47 50 52 31 20 20 72 41 32 0a 20 20 20 20 .>>>.match_iregs..GPR1..rA2.....
9120 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3e 3e 3e 20 6d 61 74 63 68 5f ......................>>>.match_
9140 69 6e 74 33 32 73 20 38 6c 20 20 20 20 28 65 78 74 73 20 73 69 6d 6d 32 29 0a 20 20 20 20 20 20 int32s.8l....(exts.simm2).......
9160 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3e 3e 3e 20 63 6f 6d 70 61 72 65 5f ....................>>>.compare_
9180 63 6f 64 65 20 63 73 20 65 73 20 28 49 6e 74 33 32 2e 61 64 64 20 31 32 6c 20 70 63 29 0a 20 20 code.cs.es.(Int32.add.12l.pc)...
91a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7c 20 5f 20 2d 3e 20 65 72 72 6f 72 ....................|._.->.error
91c0 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 65 6e 64 0a 20 20 20 20 20 .......................end......
91e0 20 20 20 20 20 20 20 20 20 20 20 20 20 7c 20 22 5f 5f 62 75 69 6c 74 69 6e 5f 66 6d 61 64 64 22 .............|."__builtin_fmadd"
9200 2c 20 5b 46 52 20 61 31 3b 20 46 52 20 61 32 3b 20 46 52 20 61 33 5d 2c 20 46 52 20 72 65 73 20 ,.[FR.a1;.FR.a2;.FR.a3],.FR.res.
9220 2d 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 62 65 67 69 6e 20 6d ->.......................begin.m
9240 61 74 63 68 20 65 63 6f 64 65 20 77 69 74 68 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 atch.ecode.with.................
9260 20 20 20 20 20 20 7c 20 46 4d 41 44 44 78 28 66 72 44 2c 20 66 72 41 2c 20 66 72 42 2c 20 66 72 ......|.FMADDx(frD,.frA,.frB,.fr
9280 43 2c 20 72 63 29 20 3a 3a 20 65 73 20 2d 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 C,.rc).::.es.->.................
92a0 20 20 20 20 20 20 20 20 20 20 66 77 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ..........fw....................
92c0 20 20 20 20 20 20 20 3e 3e 3e 20 6d 61 74 63 68 5f 66 72 65 67 73 20 72 65 73 20 66 72 44 0a 20 .......>>>.match_fregs.res.frD..
92e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3e 3e 3e 20 6d 61 74 .........................>>>.mat
9300 63 68 5f 66 72 65 67 73 20 61 31 20 66 72 41 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ch_fregs.a1.frA.................
9320 20 20 20 20 20 20 20 20 20 20 3e 3e 3e 20 6d 61 74 63 68 5f 66 72 65 67 73 20 61 33 20 66 72 42 ..........>>>.match_fregs.a3.frB
9340 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3e 3e 3e 20 6d ...........................>>>.m
9360 61 74 63 68 5f 66 72 65 67 73 20 61 32 20 66 72 43 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 atch_fregs.a2.frC...............
9380 20 20 20 20 20 20 20 20 20 20 20 20 3e 3e 3e 20 6d 61 74 63 68 5f 62 6f 6f 6c 73 20 66 61 6c 73 ............>>>.match_bools.fals
93a0 65 20 72 63 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3e e.rc...........................>
93c0 3e 3e 20 72 65 63 75 72 5f 73 69 6d 70 6c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 >>.recur_simpl..................
93e0 20 20 20 20 20 7c 20 5f 20 2d 3e 20 65 72 72 6f 72 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .....|._.->.error...............
9400 20 20 20 20 20 20 20 20 65 6e 64 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7c 20 ........end...................|.
9420 22 5f 5f 62 75 69 6c 74 69 6e 5f 66 6d 73 75 62 22 2c 20 5b 46 52 20 61 31 3b 20 46 52 20 61 32 "__builtin_fmsub",.[FR.a1;.FR.a2
9440 3b 20 46 52 20 61 33 5d 2c 20 46 52 20 72 65 73 20 2d 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 ;.FR.a3],.FR.res.->.............
9460 20 20 20 20 20 20 20 20 20 20 62 65 67 69 6e 20 6d 61 74 63 68 20 65 63 6f 64 65 20 77 69 74 68 ..........begin.match.ecode.with
9480 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7c 20 46 4d 53 55 42 78 28 .......................|.FMSUBx(
94a0 66 72 44 2c 20 66 72 41 2c 20 66 72 42 2c 20 66 72 43 2c 20 72 63 29 20 3a 3a 20 65 73 20 2d 3e frD,.frA,.frB,.frC,.rc).::.es.->
94c0 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 66 77 0a 20 20 ...........................fw...
94e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3e 3e 3e 20 6d 61 74 63 ........................>>>.matc
9500 68 5f 66 72 65 67 73 20 72 65 73 20 66 72 44 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 h_fregs.res.frD.................
9520 20 20 20 20 20 20 20 20 20 20 3e 3e 3e 20 6d 61 74 63 68 5f 66 72 65 67 73 20 61 31 20 66 72 41 ..........>>>.match_fregs.a1.frA
9540 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3e 3e 3e 20 6d ...........................>>>.m
9560 61 74 63 68 5f 66 72 65 67 73 20 61 33 20 66 72 42 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 atch_fregs.a3.frB...............
9580 20 20 20 20 20 20 20 20 20 20 20 20 3e 3e 3e 20 6d 61 74 63 68 5f 66 72 65 67 73 20 61 32 20 66 ............>>>.match_fregs.a2.f
95a0 72 43 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3e 3e 3e rC...........................>>>
95c0 20 6d 61 74 63 68 5f 62 6f 6f 6c 73 20 66 61 6c 73 65 20 72 63 0a 20 20 20 20 20 20 20 20 20 20 .match_bools.false.rc...........
95e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3e 3e 3e 20 72 65 63 75 72 5f 73 69 6d 70 6c 0a ................>>>.recur_simpl.
9600 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7c 20 5f 20 2d 3e 20 65 72 72 ......................|._.->.err
9620 6f 72 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 65 6e 64 0a 20 20 20 or.......................end....
9640 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7c 20 22 5f 5f 62 75 69 6c 74 69 6e 5f 66 6e 6d 61 ...............|."__builtin_fnma
9660 64 64 22 2c 20 5b 46 52 20 61 31 3b 20 46 52 20 61 32 3b 20 46 52 20 61 33 5d 2c 20 46 52 20 72 dd",.[FR.a1;.FR.a2;.FR.a3],.FR.r
9680 65 73 20 2d 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 62 65 67 69 es.->.......................begi
96a0 6e 20 6d 61 74 63 68 20 65 63 6f 64 65 20 77 69 74 68 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 n.match.ecode.with..............
96c0 20 20 20 20 20 20 20 20 20 7c 20 46 4e 4d 41 44 44 78 28 66 72 44 2c 20 66 72 41 2c 20 66 72 42 .........|.FNMADDx(frD,.frA,.frB
96e0 2c 20 66 72 43 2c 20 72 63 29 20 3a 3a 20 65 73 20 2d 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 ,.frC,.rc).::.es.->.............
9700 20 20 20 20 20 20 20 20 20 20 20 20 20 20 66 77 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ..............fw................
9720 20 20 20 20 20 20 20 20 20 20 20 3e 3e 3e 20 6d 61 74 63 68 5f 66 72 65 67 73 20 72 65 73 20 66 ...........>>>.match_fregs.res.f
9740 72 44 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3e 3e 3e rD...........................>>>
9760 20 6d 61 74 63 68 5f 66 72 65 67 73 20 61 31 20 66 72 41 0a 20 20 20 20 20 20 20 20 20 20 20 20 .match_fregs.a1.frA.............
9780 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3e 3e 3e 20 6d 61 74 63 68 5f 66 72 65 67 73 20 61 33 ..............>>>.match_fregs.a3
97a0 20 66 72 42 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3e .frB...........................>
97c0 3e 3e 20 6d 61 74 63 68 5f 66 72 65 67 73 20 61 32 20 66 72 43 0a 20 20 20 20 20 20 20 20 20 20 >>.match_fregs.a2.frC...........
97e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3e 3e 3e 20 6d 61 74 63 68 5f 62 6f 6f 6c 73 20 ................>>>.match_bools.
9800 66 61 6c 73 65 20 72 63 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 false.rc........................
9820 20 20 20 3e 3e 3e 20 72 65 63 75 72 5f 73 69 6d 70 6c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 ...>>>.recur_simpl..............
9840 20 20 20 20 20 20 20 20 20 7c 20 5f 20 2d 3e 20 65 72 72 6f 72 0a 20 20 20 20 20 20 20 20 20 20 .........|._.->.error...........
9860 20 20 20 20 20 20 20 20 20 20 20 20 65 6e 64 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ............end.................
9880 20 20 7c 20 22 5f 5f 62 75 69 6c 74 69 6e 5f 66 6e 6d 73 75 62 22 2c 20 5b 46 52 20 61 31 3b 20 ..|."__builtin_fnmsub",.[FR.a1;.
98a0 46 52 20 61 32 3b 20 46 52 20 61 33 5d 2c 20 46 52 20 72 65 73 20 2d 3e 0a 20 20 20 20 20 20 20 FR.a2;.FR.a3],.FR.res.->........
98c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 62 65 67 69 6e 20 6d 61 74 63 68 20 65 63 6f 64 65 ...............begin.match.ecode
98e0 20 77 69 74 68 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7c 20 46 4e .with.......................|.FN
9900 4d 53 55 42 78 28 66 72 44 2c 20 66 72 41 2c 20 66 72 42 2c 20 66 72 43 2c 20 72 63 29 20 3a 3a MSUBx(frD,.frA,.frB,.frC,.rc).::
9920 20 65 73 20 2d 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .es.->..........................
9940 20 66 77 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3e 3e .fw...........................>>
9960 3e 20 6d 61 74 63 68 5f 66 72 65 67 73 20 72 65 73 20 66 72 44 0a 20 20 20 20 20 20 20 20 20 20 >.match_fregs.res.frD...........
9980 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3e 3e 3e 20 6d 61 74 63 68 5f 66 72 65 67 73 20 ................>>>.match_fregs.
99a0 61 31 20 66 72 41 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 a1.frA..........................
99c0 20 3e 3e 3e 20 6d 61 74 63 68 5f 66 72 65 67 73 20 61 33 20 66 72 42 0a 20 20 20 20 20 20 20 20 .>>>.match_fregs.a3.frB.........
99e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3e 3e 3e 20 6d 61 74 63 68 5f 66 72 65 67 ..................>>>.match_freg
9a00 73 20 61 32 20 66 72 43 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 s.a2.frC........................
9a20 20 20 20 3e 3e 3e 20 6d 61 74 63 68 5f 62 6f 6f 6c 73 20 66 61 6c 73 65 20 72 63 0a 20 20 20 20 ...>>>.match_bools.false.rc.....
9a40 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3e 3e 3e 20 72 65 63 75 72 5f ......................>>>.recur_
9a60 73 69 6d 70 6c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7c 20 5f 20 simpl.......................|._.
9a80 2d 3e 20 65 72 72 6f 72 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 65 ->.error.......................e
9aa0 6e 64 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7c 20 22 5f 5f 62 75 69 6c 74 69 nd...................|."__builti
9ac0 6e 5f 66 61 62 73 22 2c 20 5b 46 52 20 61 31 5d 2c 20 46 52 20 72 65 73 20 2d 3e 0a 20 20 20 20 n_fabs",.[FR.a1],.FR.res.->.....
9ae0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 62 65 67 69 6e 20 6d 61 74 63 68 20 65 63 ..................begin.match.ec
9b00 6f 64 65 20 77 69 74 68 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7c ode.with.......................|
9b20 20 46 41 42 53 78 28 66 72 44 2c 20 66 72 42 2c 20 72 63 29 20 3a 3a 20 65 73 20 2d 3e 0a 20 20 .FABSx(frD,.frB,.rc).::.es.->...
9b40 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 66 77 0a 20 20 20 20 20 ........................fw......
9b60 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3e 3e 3e 20 6d 61 74 63 68 5f 66 .....................>>>.match_f
9b80 72 65 67 73 20 72 65 73 20 20 20 66 72 44 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 regs.res...frD..................
9ba0 20 20 20 20 20 20 20 20 20 3e 3e 3e 20 6d 61 74 63 68 5f 66 72 65 67 73 20 61 31 20 20 20 20 66 .........>>>.match_fregs.a1....f
9bc0 72 42 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3e 3e 3e rB...........................>>>
9be0 20 6d 61 74 63 68 5f 62 6f 6f 6c 73 20 66 61 6c 73 65 20 72 63 0a 20 20 20 20 20 20 20 20 20 20 .match_bools.false.rc...........
9c00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3e 3e 3e 20 72 65 63 75 72 5f 73 69 6d 70 6c 0a ................>>>.recur_simpl.
9c20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7c 20 5f 20 2d 3e 20 65 72 72 ......................|._.->.err
9c40 6f 72 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 65 6e 64 0a 20 20 20 or.......................end....
9c60 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7c 20 22 5f 5f 62 75 69 6c 74 69 6e 5f 66 73 71 72 ...............|."__builtin_fsqr
9c80 74 22 2c 20 5b 46 52 20 61 31 5d 2c 20 46 52 20 72 65 73 20 2d 3e 0a 20 20 20 20 20 20 20 20 20 t",.[FR.a1],.FR.res.->..........
9ca0 20 20 20 20 20 20 20 20 20 20 20 20 20 62 65 67 69 6e 20 6d 61 74 63 68 20 65 63 6f 64 65 20 77 .............begin.match.ecode.w
9cc0 69 74 68 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7c 20 46 53 51 52 ith.......................|.FSQR
9ce0 54 78 28 66 72 44 2c 20 66 72 42 2c 20 72 63 29 20 3a 3a 20 65 73 20 2d 3e 0a 20 20 20 20 20 20 Tx(frD,.frB,.rc).::.es.->.......
9d00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 66 77 0a 20 20 20 20 20 20 20 20 20 ....................fw..........
9d20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3e 3e 3e 20 6d 61 74 63 68 5f 66 72 65 67 73 .................>>>.match_fregs
9d40 20 72 65 73 20 20 20 66 72 44 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .res...frD......................
9d60 20 20 20 20 20 3e 3e 3e 20 6d 61 74 63 68 5f 66 72 65 67 73 20 61 31 20 20 20 20 66 72 42 0a 20 .....>>>.match_fregs.a1....frB..
9d80 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3e 3e 3e 20 6d 61 74 .........................>>>.mat
9da0 63 68 5f 62 6f 6f 6c 73 20 66 61 6c 73 65 20 72 63 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ch_bools.false.rc...............
9dc0 20 20 20 20 20 20 20 20 20 20 20 20 3e 3e 3e 20 72 65 63 75 72 5f 73 69 6d 70 6c 0a 20 20 20 20 ............>>>.recur_simpl.....
9de0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7c 20 5f 20 2d 3e 20 65 72 72 6f 72 0a 20 ..................|._.->.error..
9e00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 65 6e 64 0a 20 20 20 20 20 20 20 .....................end........
9e20 20 20 20 20 20 20 20 20 20 20 20 7c 20 22 5f 5f 62 75 69 6c 74 69 6e 5f 66 72 73 71 72 74 65 22 ...........|."__builtin_frsqrte"
9e40 2c 20 5b 46 52 20 61 31 5d 2c 20 46 52 20 72 65 73 20 2d 3e 0a 20 20 20 20 20 20 20 20 20 20 20 ,.[FR.a1],.FR.res.->............
9e60 20 20 20 20 20 20 20 20 20 20 20 62 65 67 69 6e 20 6d 61 74 63 68 20 65 63 6f 64 65 20 77 69 74 ...........begin.match.ecode.wit
9e80 68 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7c 20 46 52 53 51 52 54 h.......................|.FRSQRT
9ea0 45 78 28 66 72 44 2c 20 66 72 42 2c 20 72 63 29 20 3a 3a 20 65 73 20 2d 3e 0a 20 20 20 20 20 20 Ex(frD,.frB,.rc).::.es.->.......
9ec0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 66 77 0a 20 20 20 20 20 20 20 20 20 ....................fw..........
9ee0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3e 3e 3e 20 6d 61 74 63 68 5f 66 72 65 67 73 .................>>>.match_fregs
9f00 20 72 65 73 20 20 20 66 72 44 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .res...frD......................
9f20 20 20 20 20 20 3e 3e 3e 20 6d 61 74 63 68 5f 66 72 65 67 73 20 61 31 20 20 20 20 66 72 42 0a 20 .....>>>.match_fregs.a1....frB..
9f40 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3e 3e 3e 20 6d 61 74 .........................>>>.mat
9f60 63 68 5f 62 6f 6f 6c 73 20 66 61 6c 73 65 20 72 63 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ch_bools.false.rc...............
9f80 20 20 20 20 20 20 20 20 20 20 20 20 3e 3e 3e 20 72 65 63 75 72 5f 73 69 6d 70 6c 0a 20 20 20 20 ............>>>.recur_simpl.....
9fa0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7c 20 5f 20 2d 3e 20 65 72 72 6f 72 0a 20 ..................|._.->.error..
9fc0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 65 6e 64 0a 20 20 20 20 20 20 20 .....................end........
9fe0 20 20 20 20 20 20 20 20 20 20 20 7c 20 22 5f 5f 62 75 69 6c 74 69 6e 5f 66 72 65 73 22 2c 20 5b ...........|."__builtin_fres",.[
a000 46 52 20 61 31 5d 2c 20 46 52 20 72 65 73 20 2d 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 FR.a1],.FR.res.->...............
a020 20 20 20 20 20 20 20 20 62 65 67 69 6e 20 6d 61 74 63 68 20 65 63 6f 64 65 20 77 69 74 68 0a 20 ........begin.match.ecode.with..
a040 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7c 20 46 52 45 53 78 28 66 72 44 .....................|.FRESx(frD
a060 2c 20 66 72 42 2c 20 72 63 29 20 3a 3a 20 65 73 20 2d 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 ,.frB,.rc).::.es.->.............
a080 20 20 20 20 20 20 20 20 20 20 20 20 20 20 66 77 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ..............fw................
a0a0 20 20 20 20 20 20 20 20 20 20 20 3e 3e 3e 20 6d 61 74 63 68 5f 66 72 65 67 73 20 72 65 73 20 20 ...........>>>.match_fregs.res..
a0c0 20 66 72 44 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3e .frD...........................>
a0e0 3e 3e 20 6d 61 74 63 68 5f 66 72 65 67 73 20 61 31 20 20 20 20 66 72 42 0a 20 20 20 20 20 20 20 >>.match_fregs.a1....frB........
a100 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3e 3e 3e 20 6d 61 74 63 68 5f 62 6f 6f ...................>>>.match_boo
a120 6c 73 20 66 61 6c 73 65 20 72 63 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ls.false.rc.....................
a140 20 20 20 20 20 20 3e 3e 3e 20 72 65 63 75 72 5f 73 69 6d 70 6c 0a 20 20 20 20 20 20 20 20 20 20 ......>>>.recur_simpl...........
a160 20 20 20 20 20 20 20 20 20 20 20 20 7c 20 5f 20 2d 3e 20 65 72 72 6f 72 0a 20 20 20 20 20 20 20 ............|._.->.error........
a180 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 65 6e 64 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 ...............end..............
a1a0 20 20 20 20 20 7c 20 22 5f 5f 62 75 69 6c 74 69 6e 5f 66 73 65 6c 22 2c 20 5b 46 52 20 61 31 3b .....|."__builtin_fsel",.[FR.a1;
a1c0 20 46 52 20 61 32 3b 20 46 52 20 61 33 5d 2c 20 46 52 20 72 65 73 20 2d 3e 0a 20 20 20 20 20 20 .FR.a2;.FR.a3],.FR.res.->.......
a1e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 62 65 67 69 6e 20 6d 61 74 63 68 20 65 63 6f 64 ................begin.match.ecod
a200 65 20 77 69 74 68 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7c 20 46 e.with.......................|.F
a220 53 45 4c 78 28 66 72 44 2c 20 66 72 41 2c 20 66 72 42 2c 20 66 72 43 2c 20 72 63 29 20 3a 3a 20 SELx(frD,.frA,.frB,.frC,.rc).::.
a240 65 73 20 2d 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 es.->...........................
a260 66 77 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3e 3e 3e fw...........................>>>
a280 20 6d 61 74 63 68 5f 66 72 65 67 73 20 72 65 73 20 66 72 44 0a 20 20 20 20 20 20 20 20 20 20 20 .match_fregs.res.frD............
a2a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3e 3e 3e 20 6d 61 74 63 68 5f 66 72 65 67 73 20 61 ...............>>>.match_fregs.a
a2c0 31 20 66 72 41 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 1.frA...........................
a2e0 3e 3e 3e 20 6d 61 74 63 68 5f 66 72 65 67 73 20 61 33 20 66 72 42 0a 20 20 20 20 20 20 20 20 20 >>>.match_fregs.a3.frB..........
a300 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3e 3e 3e 20 6d 61 74 63 68 5f 66 72 65 67 73 .................>>>.match_fregs
a320 20 61 32 20 66 72 43 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .a2.frC.........................
a340 20 20 3e 3e 3e 20 6d 61 74 63 68 5f 62 6f 6f 6c 73 20 66 61 6c 73 65 20 72 63 0a 20 20 20 20 20 ..>>>.match_bools.false.rc......
a360 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3e 3e 3e 20 72 65 63 75 72 5f 73 .....................>>>.recur_s
a380 69 6d 70 6c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7c 20 5f 20 2d impl.......................|._.-
a3a0 3e 20 65 72 72 6f 72 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 65 6e >.error.......................en
a3c0 64 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7c 20 22 5f 5f 62 75 69 6c 74 69 6e d...................|."__builtin
a3e0 5f 72 65 61 64 31 36 5f 72 65 76 65 72 73 65 64 22 2c 20 5b 49 52 20 61 31 5d 2c 20 49 52 20 72 _read16_reversed",.[IR.a1],.IR.r
a400 65 73 20 2d 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 62 65 67 69 es.->.......................begi
a420 6e 20 6d 61 74 63 68 20 65 63 6f 64 65 20 77 69 74 68 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 n.match.ecode.with..............
a440 20 20 20 20 20 20 20 20 20 7c 20 4c 48 42 52 58 28 72 44 2c 20 72 41 2c 20 72 42 29 3a 3a 20 65 .........|.LHBRX(rD,.rA,.rB)::.e
a460 73 20 2d 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 66 s.->...........................f
a480 77 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3e 3e 3e 20 w...........................>>>.
a4a0 6d 61 74 63 68 5f 69 72 65 67 73 20 72 65 73 20 20 72 44 0a 20 20 20 20 20 20 20 20 20 20 20 20 match_iregs.res..rD.............
a4c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3e 3e 3e 20 6d 61 74 63 68 5f 69 72 65 67 73 20 47 50 ..............>>>.match_iregs.GP
a4e0 52 30 20 72 41 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 R0.rA...........................
a500 3e 3e 3e 20 6d 61 74 63 68 5f 69 72 65 67 73 20 61 31 20 20 20 72 42 0a 20 20 20 20 20 20 20 20 >>>.match_iregs.a1...rB.........
a520 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3e 3e 3e 20 72 65 63 75 72 5f 73 69 6d 70 ..................>>>.recur_simp
a540 6c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7c 20 5f 20 2d 3e 20 65 l.......................|._.->.e
a560 72 72 6f 72 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 65 6e 64 0a 20 rror.......................end..
a580 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7c 20 22 5f 5f 62 75 69 6c 74 69 6e 5f 72 65 .................|."__builtin_re
a5a0 61 64 33 32 5f 72 65 76 65 72 73 65 64 22 2c 20 5b 49 52 20 61 31 5d 2c 20 49 52 20 72 65 73 20 ad32_reversed",.[IR.a1],.IR.res.
a5c0 2d 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 62 65 67 69 6e 20 6d ->.......................begin.m
a5e0 61 74 63 68 20 65 63 6f 64 65 20 77 69 74 68 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 atch.ecode.with.................
a600 20 20 20 20 20 20 7c 20 4c 57 42 52 58 28 72 44 2c 20 72 41 2c 20 72 42 29 20 3a 3a 20 65 73 20 ......|.LWBRX(rD,.rA,.rB).::.es.
a620 2d 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 66 77 0a ->...........................fw.
a640 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3e 3e 3e 20 6d 61 ..........................>>>.ma
a660 74 63 68 5f 69 72 65 67 73 20 72 65 73 20 20 72 44 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 tch_iregs.res..rD...............
a680 20 20 20 20 20 20 20 20 20 20 20 20 3e 3e 3e 20 6d 61 74 63 68 5f 69 72 65 67 73 20 47 50 52 30 ............>>>.match_iregs.GPR0
a6a0 20 72 41 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3e 3e .rA...........................>>
a6c0 3e 20 6d 61 74 63 68 5f 69 72 65 67 73 20 61 31 20 20 20 72 42 0a 20 20 20 20 20 20 20 20 20 20 >.match_iregs.a1...rB...........
a6e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3e 3e 3e 20 72 65 63 75 72 5f 73 69 6d 70 6c 0a ................>>>.recur_simpl.
a700 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7c 20 5f 20 2d 3e 20 65 72 72 ......................|._.->.err
a720 6f 72 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 65 6e 64 0a 20 20 20 or.......................end....
a740 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7c 20 22 5f 5f 62 75 69 6c 74 69 6e 5f 77 72 69 74 ...............|."__builtin_writ
a760 65 31 36 5f 72 65 76 65 72 73 65 64 22 2c 20 5b 49 52 20 61 31 3b 20 49 52 20 61 32 5d 2c 20 5f e16_reversed",.[IR.a1;.IR.a2],._
a780 20 2d 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 62 65 67 69 6e 20 .->.......................begin.
a7a0 6d 61 74 63 68 20 65 63 6f 64 65 20 77 69 74 68 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 match.ecode.with................
a7c0 20 20 20 20 20 20 20 7c 20 53 54 48 42 52 58 28 72 53 2c 20 72 41 2c 20 72 42 29 20 3a 3a 20 65 .......|.STHBRX(rS,.rA,.rB).::.e
a7e0 73 20 2d 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 66 s.->...........................f
a800 77 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3e 3e 3e 20 w...........................>>>.
a820 6d 61 74 63 68 5f 69 72 65 67 73 20 61 32 20 20 20 72 53 0a 20 20 20 20 20 20 20 20 20 20 20 20 match_iregs.a2...rS.............
a840 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3e 3e 3e 20 6d 61 74 63 68 5f 69 72 65 67 73 20 47 50 ..............>>>.match_iregs.GP
a860 52 30 20 72 41 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 R0.rA...........................
a880 3e 3e 3e 20 6d 61 74 63 68 5f 69 72 65 67 73 20 61 31 20 20 20 72 42 0a 20 20 20 20 20 20 20 20 >>>.match_iregs.a1...rB.........
a8a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3e 3e 3e 20 72 65 63 75 72 5f 73 69 6d 70 ..................>>>.recur_simp
a8c0 6c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7c 20 5f 20 2d 3e 20 65 l.......................|._.->.e
a8e0 72 72 6f 72 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 65 6e 64 0a 20 rror.......................end..
a900 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7c 20 22 5f 5f 62 75 69 6c 74 69 6e 5f 77 72 .................|."__builtin_wr
a920 69 74 65 33 32 5f 72 65 76 65 72 73 65 64 22 2c 20 5b 49 52 20 61 31 3b 20 49 52 20 61 32 5d 2c ite32_reversed",.[IR.a1;.IR.a2],
a940 20 5f 20 2d 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 62 65 67 69 ._.->.......................begi
a960 6e 20 6d 61 74 63 68 20 65 63 6f 64 65 20 77 69 74 68 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 n.match.ecode.with..............
a980 20 20 20 20 20 20 20 20 20 7c 20 53 54 57 42 52 58 28 72 53 2c 20 72 41 2c 20 72 42 29 20 3a 3a .........|.STWBRX(rS,.rA,.rB).::
a9a0 20 65 73 20 2d 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .es.->..........................
a9c0 20 66 77 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3e 3e .fw...........................>>
a9e0 3e 20 6d 61 74 63 68 5f 69 72 65 67 73 20 61 32 20 20 20 72 53 0a 20 20 20 20 20 20 20 20 20 20 >.match_iregs.a2...rS...........
aa00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3e 3e 3e 20 6d 61 74 63 68 5f 69 72 65 67 73 20 ................>>>.match_iregs.
aa20 47 50 52 30 20 72 41 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 GPR0.rA.........................
aa40 20 20 3e 3e 3e 20 6d 61 74 63 68 5f 69 72 65 67 73 20 61 31 20 20 20 72 42 0a 20 20 20 20 20 20 ..>>>.match_iregs.a1...rB.......
aa60 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3e 3e 3e 20 72 65 63 75 72 5f 73 69 ....................>>>.recur_si
aa80 6d 70 6c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7c 20 5f 20 2d 3e mpl.......................|._.->
aaa0 20 65 72 72 6f 72 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 65 6e 64 .error.......................end
aac0 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7c 20 22 5f 5f 62 75 69 6c 74 69 6e 5f ...................|."__builtin_
aae0 65 69 65 69 6f 22 2c 20 5b 5d 2c 20 5f 20 2d 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 eieio",.[],._.->................
ab00 20 20 20 20 20 20 20 62 65 67 69 6e 20 6d 61 74 63 68 20 65 63 6f 64 65 20 77 69 74 68 0a 20 20 .......begin.match.ecode.with...
ab20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7c 20 45 49 45 49 4f 20 3a 3a 20 65 ....................|.EIEIO.::.e
ab40 73 20 2d 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 66 s.->...........................f
ab60 77 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3e 3e 3e 20 w...........................>>>.
ab80 72 65 63 75 72 5f 73 69 6d 70 6c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 recur_simpl.....................
aba0 20 20 7c 20 5f 20 2d 3e 20 65 72 72 6f 72 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ..|._.->.error..................
abc0 20 20 20 20 20 65 6e 64 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7c 20 22 5f 5f .....end...................|."__
abe0 62 75 69 6c 74 69 6e 5f 73 79 6e 63 22 2c 20 5b 5d 2c 20 5f 20 2d 3e 0a 20 20 20 20 20 20 20 20 builtin_sync",.[],._.->.........
ac00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 62 65 67 69 6e 20 6d 61 74 63 68 20 65 63 6f 64 65 20 ..............begin.match.ecode.
ac20 77 69 74 68 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7c 20 53 59 4e with.......................|.SYN
ac40 43 20 3a 3a 20 65 73 20 2d 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 C.::.es.->......................
ac60 20 20 20 20 20 66 77 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .....fw.........................
ac80 20 20 3e 3e 3e 20 72 65 63 75 72 5f 73 69 6d 70 6c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ..>>>.recur_simpl...............
aca0 20 20 20 20 20 20 20 20 7c 20 5f 20 2d 3e 20 65 72 72 6f 72 0a 20 20 20 20 20 20 20 20 20 20 20 ........|._.->.error............
acc0 20 20 20 20 20 20 20 20 20 20 20 65 6e 64 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ...........end..................
ace0 20 7c 20 22 5f 5f 62 75 69 6c 74 69 6e 5f 69 73 79 6e 63 22 2c 20 5b 5d 2c 20 5f 20 2d 3e 0a 20 .|."__builtin_isync",.[],._.->..
ad00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 62 65 67 69 6e 20 6d 61 74 63 68 .....................begin.match
ad20 20 65 63 6f 64 65 20 77 69 74 68 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .ecode.with.....................
ad40 20 20 7c 20 49 53 59 4e 43 20 3a 3a 20 65 73 20 2d 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 ..|.ISYNC.::.es.->..............
ad60 20 20 20 20 20 20 20 20 20 20 20 20 20 66 77 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .............fw.................
ad80 20 20 20 20 20 20 20 20 20 20 3e 3e 3e 20 72 65 63 75 72 5f 73 69 6d 70 6c 0a 20 20 20 20 20 20 ..........>>>.recur_simpl.......
ada0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7c 20 5f 20 2d 3e 20 65 72 72 6f 72 0a 20 20 20 ................|._.->.error....
adc0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 65 6e 64 0a 20 20 20 20 20 20 20 20 20 ...................end..........
ade0 20 20 20 20 20 20 20 20 20 7c 20 22 5f 5f 62 75 69 6c 74 69 6e 5f 74 72 61 70 22 2c 20 5b 5d 2c .........|."__builtin_trap",.[],
ae00 20 5f 20 2d 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 62 65 67 69 ._.->.......................begi
ae20 6e 20 6d 61 74 63 68 20 65 63 6f 64 65 20 77 69 74 68 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 n.match.ecode.with..............
ae40 20 20 20 20 20 20 20 20 20 7c 20 54 57 28 74 4f 2c 20 72 41 2c 20 72 42 29 20 3a 3a 20 65 73 20 .........|.TW(tO,.rA,.rB).::.es.
ae60 2d 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 66 77 0a ->...........................fw.
ae80 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3e 3e 3e 20 28 66 ..........................>>>.(f
aea0 66 5f 65 66 20 5e 25 3d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 f_ef.^%=........................
aec0 20 20 20 20 20 20 20 62 69 74 6d 61 74 63 68 20 74 4f 20 77 69 74 68 0a 20 20 20 20 20 20 20 20 .......bitmatch.tO.with.........
aee0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7c 20 7b 20 33 31 20 3a 20 35 ......................|.{.31.:.5
af00 20 3a 20 69 6e 74 20 7d 20 2d 3e 20 69 64 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .:.int.}.->.id..................
af20 20 20 20 20 20 20 20 20 20 20 20 20 20 7c 20 7b 20 5f 20 7d 20 2d 3e 20 61 64 64 5f 6c 6f 67 20 .............|.{._.}.->.add_log.
af40 28 45 52 52 4f 52 28 22 62 69 74 6d 61 74 63 68 22 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 (ERROR("bitmatch")).............
af60 20 20 20 20 20 20 20 20 20 20 20 20 20 20 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ..............).................
af80 20 20 20 20 20 20 20 20 20 20 3e 3e 3e 20 6d 61 74 63 68 5f 69 72 65 67 73 20 47 50 52 30 20 72 ..........>>>.match_iregs.GPR0.r
afa0 41 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3e 3e 3e 20 A...........................>>>.
afc0 6d 61 74 63 68 5f 69 72 65 67 73 20 47 50 52 30 20 72 42 0a 20 20 20 20 20 20 20 20 20 20 20 20 match_iregs.GPR0.rB.............
afe0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3e 3e 3e 20 72 65 63 75 72 5f 73 69 6d 70 6c 0a 20 20 ..............>>>.recur_simpl...
b000 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7c 20 5f 20 2d 3e 20 65 72 72 6f 72 ....................|._.->.error
b020 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 65 6e 64 0a 20 20 20 20 20 .......................end......
b040 20 20 20 20 20 20 20 20 20 20 20 20 20 7c 20 5f 20 2d 3e 20 65 72 72 6f 72 0a 20 20 20 20 20 20 .............|._.->.error.......
b060 20 20 20 20 20 20 20 20 65 6e 64 0a 20 20 20 20 20 20 20 20 20 20 7c 20 45 46 5f 76 6c 6f 61 64 ........end...........|.EF_vload
b080 28 63 68 75 6e 6b 29 20 2d 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 62 65 67 69 6e 20 6d (chunk).->...............begin.m
b0a0 61 74 63 68 20 61 72 67 73 20 77 69 74 68 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7c 20 5b atch.args.with...............|.[
b0c0 49 52 20 61 64 64 72 5d 20 2d 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 66 77 IR.addr].->...................fw
b0e0 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3e 3e 3e 20 63 68 65 63 6b 5f 62 75 69 ...................>>>.check_bui
b100 6c 74 69 6e 5f 76 6c 6f 61 64 5f 63 6f 6d 6d 6f 6e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ltin_vload_common...............
b120 20 20 20 20 20 20 63 73 20 65 63 6f 64 65 20 70 63 20 63 68 75 6e 6b 20 61 64 64 72 20 28 43 69 ......cs.ecode.pc.chunk.addr.(Ci
b140 6e 74 20 49 6e 74 65 67 65 72 73 2e 49 6e 74 2e 7a 65 72 6f 29 20 72 65 73 0a 20 20 20 20 20 20 nt.Integers.Int.zero).res.......
b160 20 20 20 20 20 20 20 20 7c 20 5f 20 2d 3e 20 61 73 73 65 72 74 20 66 61 6c 73 65 0a 20 20 20 20 ........|._.->.assert.false.....
b180 20 20 20 20 20 20 20 20 20 20 65 6e 64 0a 20 20 20 20 20 20 20 20 20 20 7c 20 45 46 5f 76 73 74 ..........end...........|.EF_vst
b1a0 6f 72 65 28 63 68 75 6e 6b 29 20 2d 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 62 65 67 69 ore(chunk).->...............begi
b1c0 6e 20 6d 61 74 63 68 20 61 72 67 73 20 77 69 74 68 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 n.match.args.with...............
b1e0 7c 20 5b 49 52 20 61 64 64 72 3b 20 73 72 63 5d 20 2d 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 |.[IR.addr;.src].->.............
b200 20 20 20 20 20 20 66 77 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3e 3e 3e 20 63 ......fw...................>>>.c
b220 68 65 63 6b 5f 62 75 69 6c 74 69 6e 5f 76 73 74 6f 72 65 5f 63 6f 6d 6d 6f 6e 0a 20 20 20 20 20 heck_builtin_vstore_common......
b240 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 63 73 20 65 63 6f 64 65 20 70 63 20 63 68 75 6e 6b ...............cs.ecode.pc.chunk
b260 20 61 64 64 72 20 28 43 69 6e 74 20 49 6e 74 65 67 65 72 73 2e 49 6e 74 2e 7a 65 72 6f 29 20 73 .addr.(Cint.Integers.Int.zero).s
b280 72 63 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7c 20 5f 20 2d 3e 20 61 73 73 65 72 74 20 66 rc...............|._.->.assert.f
b2a0 61 6c 73 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 65 6e 64 0a 20 20 20 20 20 20 20 20 20 alse...............end..........
b2c0 20 7c 20 45 46 5f 76 6c 6f 61 64 5f 67 6c 6f 62 61 6c 28 63 68 75 6e 6b 2c 20 69 64 65 6e 74 2c .|.EF_vload_global(chunk,.ident,
b2e0 20 6f 66 73 29 20 2d 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 62 65 67 69 6e 20 6d 61 74 .ofs).->...............begin.mat
b300 63 68 20 65 63 6f 64 65 20 77 69 74 68 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7c 20 41 44 ch.ecode.with...............|.AD
b320 44 49 53 28 72 44 2c 20 72 41 2c 20 73 69 6d 6d 29 20 3a 3a 20 65 73 20 2d 3e 0a 20 20 20 20 20 DIS(rD,.rA,.simm).::.es.->......
b340 20 20 20 20 20 20 20 20 20 20 20 20 20 6c 65 74 20 68 69 67 68 20 3d 20 43 73 79 6d 62 6f 6c 5f .............let.high.=.Csymbol_
b360 68 69 67 68 28 69 64 65 6e 74 2c 20 6f 66 73 29 20 69 6e 0a 20 20 20 20 20 20 20 20 20 20 20 20 high(ident,.ofs).in.............
b380 20 20 20 20 20 20 66 77 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3e 3e 3e 20 6d ......fw...................>>>.m
b3a0 61 74 63 68 5f 69 72 65 67 73 20 20 47 50 52 31 31 20 72 44 0a 20 20 20 20 20 20 20 20 20 20 20 atch_iregs..GPR11.rD............
b3c0 20 20 20 20 20 20 20 3e 3e 3e 20 6d 61 74 63 68 5f 69 72 65 67 73 20 20 47 50 52 30 20 20 72 41 .......>>>.match_iregs..GPR0..rA
b3e0 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3e 3e 3e 20 6d 61 74 63 68 5f 63 73 74 ...................>>>.match_cst
b400 73 20 20 20 68 69 67 68 20 20 28 53 61 66 65 33 32 2e 6f 66 5f 69 6e 74 20 73 69 6d 6d 29 0a 20 s...high..(Safe32.of_int.simm)..
b420 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3e 3e 3e 20 63 68 65 63 6b 5f 62 75 69 6c 74 .................>>>.check_built
b440 69 6e 5f 76 6c 6f 61 64 5f 63 6f 6d 6d 6f 6e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 in_vload_common.................
b460 20 20 20 20 63 73 20 65 73 20 28 49 6e 74 33 32 2e 61 64 64 20 70 63 20 34 6c 29 20 63 68 75 6e ....cs.es.(Int32.add.pc.4l).chun
b480 6b 20 47 50 52 31 31 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 43 73 79 k.GPR11.....................(Csy
b4a0 6d 62 6f 6c 5f 6c 6f 77 28 69 64 65 6e 74 2c 20 6f 66 73 29 29 20 72 65 73 0a 20 20 20 20 20 20 mbol_low(ident,.ofs)).res.......
b4c0 20 20 20 20 20 20 20 20 7c 20 5f 20 2d 3e 20 65 72 72 6f 72 0a 20 20 20 20 20 20 20 20 20 20 20 ........|._.->.error............
b4e0 20 20 20 65 6e 64 0a 20 20 20 20 20 20 20 20 20 20 7c 20 45 46 5f 76 73 74 6f 72 65 5f 67 6c 6f ...end...........|.EF_vstore_glo
b500 62 61 6c 28 63 68 75 6e 6b 2c 20 69 64 65 6e 74 2c 20 6f 66 73 29 20 2d 3e 0a 20 20 20 20 20 20 bal(chunk,.ident,.ofs).->.......
b520 20 20 20 20 20 20 20 20 62 65 67 69 6e 20 6d 61 74 63 68 20 61 72 67 73 20 77 69 74 68 0a 20 20 ........begin.match.args.with...
b540 20 20 20 20 20 20 20 20 20 20 20 20 7c 20 5b 73 72 63 5d 20 2d 3e 0a 20 20 20 20 20 20 20 20 20 ............|.[src].->..........
b560 20 20 20 20 20 20 20 20 20 62 65 67 69 6e 20 6d 61 74 63 68 20 65 63 6f 64 65 20 77 69 74 68 0a .........begin.match.ecode.with.
b580 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7c 20 41 44 44 49 53 28 72 44 2c 20 72 41 ..................|.ADDIS(rD,.rA
b5a0 2c 20 73 69 6d 6d 29 20 3a 3a 20 65 73 20 2d 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ,.simm).::.es.->................
b5c0 20 20 20 20 20 20 20 6c 65 74 20 74 6d 70 20 3d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .......let.tmp.=................
b5e0 20 20 20 20 20 20 20 20 20 69 66 20 73 72 63 20 3d 20 49 52 20 47 50 52 31 31 0a 20 20 20 20 20 .........if.src.=.IR.GPR11......
b600 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 74 68 65 6e 20 47 50 52 31 32 0a 20 20 ...................then.GPR12...
b620 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 65 6c 73 65 20 47 50 52 31 31 ......................else.GPR11
b640 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 69 6e 0a 20 20 20 20 20 20 .......................in.......
b660 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6c 65 74 20 68 69 67 68 20 3d 20 43 73 79 6d 62 ................let.high.=.Csymb
b680 6f 6c 5f 68 69 67 68 28 69 64 65 6e 74 2c 20 6f 66 73 29 20 69 6e 0a 20 20 20 20 20 20 20 20 20 ol_high(ident,.ofs).in..........
b6a0 20 20 20 20 20 20 20 20 20 20 20 20 20 66 77 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .............fw.................
b6c0 20 20 20 20 20 20 3e 3e 3e 20 6d 61 74 63 68 5f 69 72 65 67 73 20 20 74 6d 70 20 20 20 72 44 0a ......>>>.match_iregs..tmp...rD.
b6e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3e 3e 3e 20 6d 61 74 63 68 5f ......................>>>.match_
b700 69 72 65 67 73 20 20 47 50 52 30 20 20 72 41 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 iregs..GPR0..rA.................
b720 20 20 20 20 20 20 3e 3e 3e 20 6d 61 74 63 68 5f 63 73 74 73 20 20 20 68 69 67 68 20 20 28 53 61 ......>>>.match_csts...high..(Sa
b740 66 65 33 32 2e 6f 66 5f 69 6e 74 20 73 69 6d 6d 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 fe32.of_int.simm)...............
b760 20 20 20 20 20 20 20 20 3e 3e 3e 20 63 68 65 63 6b 5f 62 75 69 6c 74 69 6e 5f 76 73 74 6f 72 65 ........>>>.check_builtin_vstore
b780 5f 63 6f 6d 6d 6f 6e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 _common.........................
b7a0 63 73 20 65 73 20 28 49 6e 74 33 32 2e 61 64 64 20 70 63 20 34 6c 29 20 63 68 75 6e 6b 20 74 6d cs.es.(Int32.add.pc.4l).chunk.tm
b7c0 70 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 43 73 79 6d 62 p.........................(Csymb
b7e0 6f 6c 5f 6c 6f 77 28 69 64 65 6e 74 2c 20 6f 66 73 29 29 20 73 72 63 0a 20 20 20 20 20 20 20 20 ol_low(ident,.ofs)).src.........
b800 20 20 20 20 20 20 20 20 20 20 7c 20 5f 20 2d 3e 20 65 72 72 6f 72 0a 20 20 20 20 20 20 20 20 20 ..........|._.->.error..........
b820 20 20 20 20 20 20 20 20 20 65 6e 64 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7c 20 5f 20 2d .........end...............|._.-
b840 3e 20 61 73 73 65 72 74 20 66 61 6c 73 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 65 6e 64 >.assert.false...............end
b860 0a 20 20 20 20 20 20 20 20 20 20 7c 20 45 46 5f 6d 65 6d 63 70 79 28 73 7a 2c 20 61 6c 29 20 2d ...........|.EF_memcpy(sz,.al).-
b880 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6c 65 74 20 73 7a 20 3d 20 7a 5f 69 6e 74 20 73 >...............let.sz.=.z_int.s
b8a0 7a 20 69 6e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6c 65 74 20 61 6c 20 3d 20 7a 5f 69 6e z.in...............let.al.=.z_in
b8c0 74 20 61 6c 20 69 6e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 62 65 67 69 6e 20 6d 61 74 63 t.al.in...............begin.matc
b8e0 68 20 61 72 67 73 20 77 69 74 68 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7c 20 5b 49 52 20 h.args.with...............|.[IR.
b900 64 73 74 3b 20 49 52 20 73 72 63 5d 20 2d 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 dst;.IR.src].->.................
b920 20 20 69 66 20 73 7a 20 3c 3d 20 36 34 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ..if.sz.<=.64...................
b940 74 68 65 6e 20 28 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6d 61 74 63 68 then.(.....................match
b960 20 6d 61 74 63 68 5f 6d 65 6d 63 70 79 5f 73 6d 61 6c 6c 20 65 63 6f 64 65 20 70 63 20 73 7a 20 .match_memcpy_small.ecode.pc.sz.
b980 61 6c 20 73 72 63 20 64 73 74 20 66 77 20 77 69 74 68 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 al.src.dst.fw.with..............
b9a0 20 20 20 20 20 20 20 7c 20 4e 6f 6e 65 20 2d 3e 20 65 72 72 6f 72 0a 20 20 20 20 20 20 20 20 20 .......|.None.->.error..........
b9c0 20 20 20 20 20 20 20 20 20 20 20 7c 20 53 6f 6d 65 28 66 77 2c 20 65 73 2c 20 70 63 29 20 2d 3e ...........|.Some(fw,.es,.pc).->
b9e0 20 63 6f 6d 70 61 72 65 5f 63 6f 64 65 20 63 73 20 65 73 20 70 63 20 66 77 0a 20 20 20 20 20 20 .compare_code.cs.es.pc.fw.......
ba00 20 20 20 20 20 20 20 20 20 20 20 20 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ............)...................
ba20 65 6c 73 65 20 28 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6d 61 74 63 68 else.(.....................match
ba40 20 6d 61 74 63 68 5f 6d 65 6d 63 70 79 5f 62 69 67 20 65 63 6f 64 65 20 70 63 20 73 7a 20 61 6c .match_memcpy_big.ecode.pc.sz.al
ba60 20 73 72 63 20 64 73 74 20 66 77 20 77 69 74 68 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .src.dst.fw.with................
ba80 20 20 20 20 20 7c 20 4e 6f 6e 65 20 2d 3e 20 65 72 72 6f 72 0a 20 20 20 20 20 20 20 20 20 20 20 .....|.None.->.error............
baa0 20 20 20 20 20 20 20 20 20 7c 20 53 6f 6d 65 28 66 77 2c 20 65 73 2c 20 70 63 29 20 2d 3e 20 63 .........|.Some(fw,.es,.pc).->.c
bac0 6f 6d 70 61 72 65 5f 63 6f 64 65 20 63 73 20 65 73 20 70 63 20 66 77 0a 20 20 20 20 20 20 20 20 ompare_code.cs.es.pc.fw.........
bae0 20 20 20 20 20 20 20 20 20 20 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7c 20 5f 20 2d 3e ..........)...............|._.->
bb00 20 65 72 72 6f 72 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 65 6e 64 0a 20 20 20 20 20 20 20 .error...............end........
bb20 20 20 20 7c 20 45 46 5f 61 6e 6e 6f 74 5f 76 61 6c 28 74 65 78 74 2c 20 74 61 72 67 29 20 2d 3e ...|.EF_annot_val(text,.targ).->
bb40 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 62 65 67 69 6e 20 6d 61 74 63 68 20 61 72 67 73 2c ...............begin.match.args,
bb60 20 72 65 73 20 77 69 74 68 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7c 20 49 52 20 73 72 63 .res.with...............|.IR.src
bb80 20 3a 3a 20 5f 2c 20 49 52 20 64 73 74 20 2d 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .::._,.IR.dst.->................
bba0 20 20 20 69 66 20 64 73 74 20 3c 3e 20 73 72 63 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ...if.dst.<>.src................
bbc0 20 20 20 74 68 65 6e 20 28 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6d 61 ...then.(.....................ma
bbe0 74 63 68 20 65 63 6f 64 65 20 77 69 74 68 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 tch.ecode.with..................
bc00 20 20 20 7c 20 4f 52 78 28 72 53 2c 20 72 41 2c 20 72 42 2c 20 72 63 29 20 3a 3a 20 65 73 20 2d ...|.ORx(rS,.rA,.rB,.rc).::.es.-
bc20 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 66 77 0a 20 20 20 >.........................fw....
bc40 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3e 3e 3e 20 6d 61 74 63 68 5f 69 .....................>>>.match_i
bc60 72 65 67 73 20 73 72 63 20 72 53 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 regs.src.rS.....................
bc80 20 20 20 20 3e 3e 3e 20 6d 61 74 63 68 5f 69 72 65 67 73 20 64 73 74 20 72 41 0a 20 20 20 20 20 ....>>>.match_iregs.dst.rA......
bca0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3e 3e 3e 20 6d 61 74 63 68 5f 69 72 65 ...................>>>.match_ire
bcc0 67 73 20 73 72 63 20 72 42 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 gs.src.rB.......................
bce0 20 20 3e 3e 3e 20 6d 61 74 63 68 5f 62 6f 6f 6c 73 20 66 61 6c 73 65 20 72 63 0a 20 20 20 20 20 ..>>>.match_bools.false.rc......
bd00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3e 3e 3e 20 72 65 63 75 72 5f 73 69 6d ...................>>>.recur_sim
bd20 70 6c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7c 20 5f 20 2d 3e 20 65 72 pl.....................|._.->.er
bd40 72 6f 72 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 29 0a 20 20 20 20 20 20 20 20 ror...................).........
bd60 20 20 20 20 20 20 20 20 20 20 65 6c 73 65 20 63 6f 6d 70 61 72 65 5f 63 6f 64 65 20 63 73 20 65 ..........else.compare_code.cs.e
bd80 63 6f 64 65 20 70 63 20 66 77 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7c 20 46 52 20 73 72 code.pc.fw...............|.FR.sr
bda0 63 20 3a 3a 20 5f 2c 20 46 52 20 64 73 74 20 2d 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 c.::._,.FR.dst.->...............
bdc0 20 20 20 20 69 66 20 64 73 74 20 3c 3e 20 73 72 63 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ....if.dst.<>.src...............
bde0 20 20 20 20 74 68 65 6e 20 28 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6d ....then.(.....................m
be00 61 74 63 68 20 65 63 6f 64 65 20 77 69 74 68 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 atch.ecode.with.................
be20 20 20 20 20 7c 20 46 4d 52 78 28 66 72 44 2c 20 66 72 42 2c 20 72 63 29 20 3a 3a 20 65 73 20 2d ....|.FMRx(frD,.frB,.rc).::.es.-
be40 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 66 77 0a 20 20 20 >.........................fw....
be60 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3e 3e 3e 20 6d 61 74 63 68 5f 66 .....................>>>.match_f
be80 72 65 67 73 20 64 73 74 20 66 72 44 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 regs.dst.frD....................
bea0 20 20 20 20 20 3e 3e 3e 20 6d 61 74 63 68 5f 66 72 65 67 73 20 73 72 63 20 66 72 42 0a 20 20 20 .....>>>.match_fregs.src.frB....
bec0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3e 3e 3e 20 6d 61 74 63 68 5f 62 .....................>>>.match_b
bee0 6f 6f 6c 73 20 66 61 6c 73 65 20 72 63 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ools.false.rc...................
bf00 20 20 20 20 20 20 3e 3e 3e 20 72 65 63 75 72 5f 73 69 6d 70 6c 0a 20 20 20 20 20 20 20 20 20 20 ......>>>.recur_simpl...........
bf20 20 20 20 20 20 20 20 20 20 20 7c 20 5f 20 2d 3e 20 65 72 72 6f 72 0a 20 20 20 20 20 20 20 20 20 ..........|._.->.error..........
bf40 20 20 20 20 20 20 20 20 20 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 65 6c 73 .........)...................els
bf60 65 20 63 6f 6d 70 61 72 65 5f 63 6f 64 65 20 63 73 20 65 63 6f 64 65 20 70 63 20 66 77 0a 20 20 e.compare_code.cs.ecode.pc.fw...
bf80 20 20 20 20 20 20 20 20 20 20 20 20 7c 20 5f 20 2d 3e 20 65 72 72 6f 72 0a 20 20 20 20 20 20 20 ............|._.->.error........
bfa0 20 20 20 20 20 20 20 65 6e 64 0a 20 20 20 20 20 20 20 20 20 20 7c 20 45 46 5f 61 6e 6e 6f 74 28 .......end...........|.EF_annot(
bfc0 5f 2c 20 5f 29 20 2d 3e 20 61 73 73 65 72 74 20 66 61 6c 73 65 0a 20 20 20 20 20 20 20 20 20 20 _,._).->.assert.false...........
bfe0 7c 20 45 46 5f 65 78 74 65 72 6e 61 6c 28 5f 2c 20 5f 29 20 2d 3e 20 61 73 73 65 72 74 20 66 61 |.EF_external(_,._).->.assert.fa
c000 6c 73 65 0a 20 20 20 20 20 20 20 20 20 20 7c 20 45 46 5f 66 72 65 65 20 2d 3e 20 61 73 73 65 72 lse...........|.EF_free.->.asser
c020 74 20 66 61 6c 73 65 0a 20 20 20 20 20 20 20 20 20 20 7c 20 45 46 5f 6d 61 6c 6c 6f 63 20 2d 3e t.false...........|.EF_malloc.->
c040 20 61 73 73 65 72 74 20 66 61 6c 73 65 0a 20 20 20 20 20 20 20 20 20 20 65 6e 64 0a 20 20 20 20 .assert.false...........end.....
c060 20 20 7c 20 50 63 6d 70 6c 77 28 72 31 2c 20 72 32 29 20 2d 3e 0a 20 20 20 20 20 20 20 20 20 20 ..|.Pcmplw(r1,.r2).->...........
c080 62 65 67 69 6e 20 6d 61 74 63 68 20 65 63 6f 64 65 20 77 69 74 68 0a 20 20 20 20 20 20 20 20 20 begin.match.ecode.with..........
c0a0 20 7c 20 43 4d 50 4c 28 63 72 66 44 2c 20 6c 2c 20 72 41 2c 20 72 42 29 20 3a 3a 20 65 73 20 2d .|.CMPL(crfD,.l,.rA,.rB).::.es.-
c0c0 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 66 77 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 >...............fw..............
c0e0 20 3e 3e 3e 20 6d 61 74 63 68 5f 63 72 62 69 74 73 20 43 52 62 69 74 5f 30 20 63 72 66 44 0a 20 .>>>.match_crbits.CRbit_0.crfD..
c100 20 20 20 20 20 20 20 20 20 20 20 20 20 3e 3e 3e 20 6d 61 74 63 68 5f 62 6f 6f 6c 73 20 20 66 61 .............>>>.match_bools..fa
c120 6c 73 65 20 20 20 6c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3e 3e 3e 20 6d 61 74 63 68 5f lse...l...............>>>.match_
c140 69 72 65 67 73 20 20 72 31 20 20 20 20 20 20 72 41 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 iregs..r1......rA...............
c160 3e 3e 3e 20 6d 61 74 63 68 5f 69 72 65 67 73 20 20 72 32 20 20 20 20 20 20 72 42 0a 20 20 20 20 >>>.match_iregs..r2......rB.....
c180 20 20 20 20 20 20 20 20 20 20 3e 3e 3e 20 72 65 63 75 72 5f 73 69 6d 70 6c 0a 20 20 20 20 20 20 ..........>>>.recur_simpl.......
c1a0 20 20 20 20 7c 20 5f 20 2d 3e 20 65 72 72 6f 72 0a 20 20 20 20 20 20 20 20 20 20 65 6e 64 0a 20 ....|._.->.error...........end..
c1c0 20 20 20 20 20 7c 20 50 63 6d 70 6c 77 69 28 72 31 2c 20 63 73 74 29 20 2d 3e 0a 20 20 20 20 20 .....|.Pcmplwi(r1,.cst).->......
c1e0 20 20 20 20 20 62 65 67 69 6e 20 6d 61 74 63 68 20 65 63 6f 64 65 20 77 69 74 68 0a 20 20 20 20 .....begin.match.ecode.with.....
c200 20 20 20 20 20 20 7c 20 43 4d 50 4c 49 28 63 72 66 44 2c 20 6c 2c 20 72 41 2c 20 75 69 6d 6d 29 ......|.CMPLI(crfD,.l,.rA,.uimm)
c220 20 3a 3a 20 65 73 20 2d 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 66 77 0a 20 20 20 20 20 .::.es.->...............fw......
c240 20 20 20 20 20 20 20 20 20 3e 3e 3e 20 6d 61 74 63 68 5f 69 72 65 67 73 20 20 72 31 20 20 20 20 .........>>>.match_iregs..r1....
c260 20 20 72 41 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3e 3e 3e 20 6d 61 74 63 68 5f 63 73 74 ..rA...............>>>.match_cst
c280 73 20 20 20 63 73 74 20 20 20 20 20 28 53 61 66 65 33 32 2e 6f 66 5f 69 6e 74 20 75 69 6d 6d 29 s...cst.....(Safe32.of_int.uimm)
c2a0 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3e 3e 3e 20 6d 61 74 63 68 5f 63 72 62 69 74 73 20 ...............>>>.match_crbits.
c2c0 43 52 62 69 74 5f 30 20 63 72 66 44 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3e 3e 3e 20 6d CRbit_0.crfD...............>>>.m
c2e0 61 74 63 68 5f 62 6f 6f 6c 73 20 20 66 61 6c 73 65 20 20 20 6c 0a 20 20 20 20 20 20 20 20 20 20 atch_bools..false...l...........
c300 20 20 20 20 3e 3e 3e 20 72 65 63 75 72 5f 73 69 6d 70 6c 0a 20 20 20 20 20 20 20 20 20 20 7c 20 ....>>>.recur_simpl...........|.
c320 5f 20 2d 3e 20 65 72 72 6f 72 0a 20 20 20 20 20 20 20 20 20 20 65 6e 64 0a 20 20 20 20 20 20 7c _.->.error...........end.......|
c340 20 50 63 6d 70 77 28 72 31 2c 20 72 32 29 20 2d 3e 0a 20 20 20 20 20 20 20 20 20 20 62 65 67 69 .Pcmpw(r1,.r2).->...........begi
c360 6e 20 6d 61 74 63 68 20 65 63 6f 64 65 20 77 69 74 68 0a 20 20 20 20 20 20 20 20 20 20 7c 20 43 n.match.ecode.with...........|.C
c380 4d 50 28 63 72 66 44 2c 20 6c 2c 20 72 41 2c 20 72 42 29 20 3a 3a 20 65 73 20 2d 3e 0a 20 20 20 MP(crfD,.l,.rA,.rB).::.es.->....
c3a0 20 20 20 20 20 20 20 20 20 20 20 66 77 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3e 3e 3e 20 ...........fw...............>>>.
c3c0 6d 61 74 63 68 5f 69 6e 74 73 20 20 63 72 66 44 20 30 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 match_ints..crfD.0..............
c3e0 20 3e 3e 3e 20 6d 61 74 63 68 5f 62 6f 6f 6c 73 20 6c 20 20 20 20 66 61 6c 73 65 0a 20 20 20 20 .>>>.match_bools.l....false.....
c400 20 20 20 20 20 20 20 20 20 20 3e 3e 3e 20 6d 61 74 63 68 5f 69 72 65 67 73 20 72 31 20 20 20 72 ..........>>>.match_iregs.r1...r
c420 41 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3e 3e 3e 20 6d 61 74 63 68 5f 69 72 65 67 73 20 A...............>>>.match_iregs.
c440 72 32 20 20 20 72 42 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3e 3e 3e 20 72 65 63 75 72 5f r2...rB...............>>>.recur_
c460 73 69 6d 70 6c 0a 20 20 20 20 20 20 20 20 20 20 7c 20 5f 20 2d 3e 20 65 72 72 6f 72 0a 20 20 20 simpl...........|._.->.error....
c480 20 20 20 20 20 20 20 65 6e 64 0a 20 20 20 20 20 20 7c 20 50 63 6d 70 77 69 28 72 31 2c 20 63 73 .......end.......|.Pcmpwi(r1,.cs
c4a0 74 29 20 2d 3e 0a 20 20 20 20 20 20 20 20 20 20 62 65 67 69 6e 20 6d 61 74 63 68 20 65 63 6f 64 t).->...........begin.match.ecod
c4c0 65 20 77 69 74 68 0a 20 20 20 20 20 20 20 20 20 20 7c 20 43 4d 50 49 28 63 72 66 44 2c 20 6c 2c e.with...........|.CMPI(crfD,.l,
c4e0 20 72 41 2c 20 73 69 6d 6d 29 20 3a 3a 20 65 73 20 2d 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 .rA,.simm).::.es.->.............
c500 20 20 66 77 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3e 3e 3e 20 6d 61 74 63 68 5f 69 6e 74 ..fw...............>>>.match_int
c520 73 20 20 63 72 66 44 20 20 30 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3e 3e 3e 20 6d 61 74 s..crfD..0...............>>>.mat
c540 63 68 5f 62 6f 6f 6c 73 20 66 61 6c 73 65 20 6c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3e ch_bools.false.l...............>
c560 3e 3e 20 6d 61 74 63 68 5f 69 72 65 67 73 20 72 31 20 20 20 20 72 41 0a 20 20 20 20 20 20 20 20 >>.match_iregs.r1....rA.........
c580 20 20 20 20 20 20 3e 3e 3e 20 6d 61 74 63 68 5f 63 73 74 73 20 20 63 73 74 20 20 20 28 65 78 74 ......>>>.match_csts..cst...(ext
c5a0 73 20 73 69 6d 6d 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3e 3e 3e 20 72 65 63 75 72 5f s.simm)...............>>>.recur_
c5c0 73 69 6d 70 6c 0a 20 20 20 20 20 20 20 20 20 20 7c 20 5f 20 2d 3e 20 65 72 72 6f 72 0a 20 20 20 simpl...........|._.->.error....
c5e0 20 20 20 20 20 20 20 65 6e 64 0a 20 20 20 20 20 20 7c 20 50 63 72 6f 72 28 62 64 2c 20 62 31 2c .......end.......|.Pcror(bd,.b1,
c600 20 62 32 29 20 2d 3e 0a 20 20 20 20 20 20 20 20 20 20 62 65 67 69 6e 20 6d 61 74 63 68 20 65 63 .b2).->...........begin.match.ec
c620 6f 64 65 20 77 69 74 68 0a 20 20 20 20 20 20 20 20 20 20 7c 20 43 52 4f 52 28 63 72 62 44 2c 20 ode.with...........|.CROR(crbD,.
c640 63 72 62 41 2c 20 63 72 62 42 29 20 3a 3a 20 65 73 20 2d 3e 0a 20 20 20 20 20 20 20 20 20 20 20 crbA,.crbB).::.es.->............
c660 20 20 20 66 77 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3e 3e 3e 20 6d 61 74 63 68 5f 63 72 ...fw...............>>>.match_cr
c680 62 69 74 73 20 62 64 20 63 72 62 44 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3e 3e 3e 20 6d bits.bd.crbD...............>>>.m
c6a0 61 74 63 68 5f 63 72 62 69 74 73 20 62 31 20 63 72 62 41 0a 20 20 20 20 20 20 20 20 20 20 20 20 atch_crbits.b1.crbA.............
c6c0 20 20 3e 3e 3e 20 6d 61 74 63 68 5f 63 72 62 69 74 73 20 62 32 20 63 72 62 42 0a 20 20 20 20 20 ..>>>.match_crbits.b2.crbB......
c6e0 20 20 20 20 20 20 20 20 20 3e 3e 3e 20 72 65 63 75 72 5f 73 69 6d 70 6c 0a 20 20 20 20 20 20 20 .........>>>.recur_simpl........
c700 20 20 20 7c 20 5f 20 2d 3e 20 65 72 72 6f 72 0a 20 20 20 20 20 20 20 20 20 20 65 6e 64 0a 20 20 ...|._.->.error...........end...
c720 20 20 20 20 7c 20 50 64 69 76 77 28 72 64 2c 20 72 31 2c 20 72 32 29 20 2d 3e 0a 20 20 20 20 20 ....|.Pdivw(rd,.r1,.r2).->......
c740 20 20 20 20 20 62 65 67 69 6e 20 6d 61 74 63 68 20 65 63 6f 64 65 20 77 69 74 68 0a 20 20 20 20 .....begin.match.ecode.with.....
c760 20 20 20 20 20 20 7c 20 44 49 56 57 78 28 72 44 2c 20 72 41 2c 20 72 42 2c 20 6f 65 2c 20 72 63 ......|.DIVWx(rD,.rA,.rB,.oe,.rc
c780 29 20 3a 3a 20 65 73 20 2d 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 66 77 0a 20 20 20 20 ).::.es.->...............fw.....
c7a0 20 20 20 20 20 20 20 20 20 20 3e 3e 3e 20 6d 61 74 63 68 5f 69 72 65 67 73 20 72 64 20 20 20 20 ..........>>>.match_iregs.rd....
c7c0 72 44 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3e 3e 3e 20 6d 61 74 63 68 5f 69 72 65 67 73 rD...............>>>.match_iregs
c7e0 20 72 31 20 20 20 20 72 41 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3e 3e 3e 20 6d 61 74 63 .r1....rA...............>>>.matc
c800 68 5f 69 72 65 67 73 20 72 32 20 20 20 20 72 42 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3e h_iregs.r2....rB...............>
c820 3e 3e 20 6d 61 74 63 68 5f 62 6f 6f 6c 73 20 66 61 6c 73 65 20 6f 65 0a 20 20 20 20 20 20 20 20 >>.match_bools.false.oe.........
c840 20 20 20 20 20 20 3e 3e 3e 20 6d 61 74 63 68 5f 62 6f 6f 6c 73 20 66 61 6c 73 65 20 72 63 0a 20 ......>>>.match_bools.false.rc..
c860 20 20 20 20 20 20 20 20 20 20 20 20 20 3e 3e 3e 20 72 65 63 75 72 5f 73 69 6d 70 6c 0a 20 20 20 .............>>>.recur_simpl....
c880 20 20 20 20 20 20 20 7c 20 5f 20 2d 3e 20 65 72 72 6f 72 0a 20 20 20 20 20 20 20 20 20 20 65 6e .......|._.->.error...........en
c8a0 64 0a 20 20 20 20 20 20 7c 20 50 64 69 76 77 75 28 72 64 2c 20 72 31 2c 20 72 32 29 20 2d 3e 0a d.......|.Pdivwu(rd,.r1,.r2).->.
c8c0 20 20 20 20 20 20 20 20 20 20 62 65 67 69 6e 20 6d 61 74 63 68 20 65 63 6f 64 65 20 77 69 74 68 ..........begin.match.ecode.with
c8e0 0a 20 20 20 20 20 20 20 20 20 20 7c 20 44 49 56 57 55 78 28 72 44 2c 20 72 41 2c 20 72 42 2c 20 ...........|.DIVWUx(rD,.rA,.rB,.
c900 6f 65 2c 20 72 63 29 20 3a 3a 20 65 73 20 2d 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 66 oe,.rc).::.es.->...............f
c920 77 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3e 3e 3e 20 6d 61 74 63 68 5f 69 72 65 67 73 20 w...............>>>.match_iregs.
c940 72 64 20 20 20 20 72 44 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3e 3e 3e 20 6d 61 74 63 68 rd....rD...............>>>.match
c960 5f 69 72 65 67 73 20 72 31 20 20 20 20 72 41 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3e 3e _iregs.r1....rA...............>>
c980 3e 20 6d 61 74 63 68 5f 69 72 65 67 73 20 72 32 20 20 20 20 72 42 0a 20 20 20 20 20 20 20 20 20 >.match_iregs.r2....rB..........
c9a0 20 20 20 20 20 3e 3e 3e 20 6d 61 74 63 68 5f 62 6f 6f 6c 73 20 66 61 6c 73 65 20 6f 65 0a 20 20 .....>>>.match_bools.false.oe...
c9c0 20 20 20 20 20 20 20 20 20 20 20 20 3e 3e 3e 20 6d 61 74 63 68 5f 62 6f 6f 6c 73 20 66 61 6c 73 ............>>>.match_bools.fals
c9e0 65 20 72 63 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3e 3e 3e 20 72 65 63 75 72 5f 73 69 6d e.rc...............>>>.recur_sim
ca00 70 6c 0a 20 20 20 20 20 20 20 20 20 20 7c 20 5f 20 2d 3e 20 65 72 72 6f 72 0a 20 20 20 20 20 20 pl...........|._.->.error.......
ca20 20 20 20 20 65 6e 64 0a 20 20 20 20 20 20 7c 20 50 65 71 76 28 72 64 2c 20 72 31 2c 20 72 32 29 ....end.......|.Peqv(rd,.r1,.r2)
ca40 20 2d 3e 0a 20 20 20 20 20 20 20 20 20 20 62 65 67 69 6e 20 6d 61 74 63 68 20 65 63 6f 64 65 20 .->...........begin.match.ecode.
ca60 77 69 74 68 0a 20 20 20 20 20 20 20 20 20 20 7c 20 45 51 56 78 28 72 53 2c 20 72 41 2c 20 72 42 with...........|.EQVx(rS,.rA,.rB
ca80 2c 20 72 63 29 20 3a 3a 20 65 73 20 2d 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 66 77 0a ,.rc).::.es.->...............fw.
caa0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3e 3e 3e 20 6d 61 74 63 68 5f 69 72 65 67 73 20 72 64 ..............>>>.match_iregs.rd
cac0 20 20 20 20 72 41 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3e 3e 3e 20 6d 61 74 63 68 5f 69 ....rA...............>>>.match_i
cae0 72 65 67 73 20 72 31 20 20 20 20 72 53 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3e 3e 3e 20 regs.r1....rS...............>>>.
cb00 6d 61 74 63 68 5f 69 72 65 67 73 20 72 32 20 20 20 20 72 42 0a 20 20 20 20 20 20 20 20 20 20 20 match_iregs.r2....rB............
cb20 20 20 20 3e 3e 3e 20 6d 61 74 63 68 5f 62 6f 6f 6c 73 20 66 61 6c 73 65 20 72 63 0a 20 20 20 20 ...>>>.match_bools.false.rc.....
cb40 20 20 20 20 20 20 20 20 20 20 3e 3e 3e 20 72 65 63 75 72 5f 73 69 6d 70 6c 0a 20 20 20 20 20 20 ..........>>>.recur_simpl.......
cb60 20 20 20 20 7c 20 5f 20 2d 3e 20 65 72 72 6f 72 0a 20 20 20 20 20 20 20 20 20 20 65 6e 64 0a 20 ....|._.->.error...........end..
cb80 20 20 20 20 20 7c 20 50 65 78 74 73 62 28 72 64 2c 20 72 31 29 20 2d 3e 0a 20 20 20 20 20 20 20 .....|.Pextsb(rd,.r1).->........
cba0 20 20 20 62 65 67 69 6e 20 6d 61 74 63 68 20 65 63 6f 64 65 20 77 69 74 68 0a 20 20 20 20 20 20 ...begin.match.ecode.with.......
cbc0 20 20 20 20 7c 20 45 58 54 53 42 78 28 72 53 2c 20 72 41 2c 20 72 63 29 20 3a 3a 20 65 73 20 2d ....|.EXTSBx(rS,.rA,.rc).::.es.-
cbe0 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 66 77 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 >...............fw..............
cc00 20 3e 3e 3e 20 6d 61 74 63 68 5f 69 72 65 67 73 20 72 64 20 20 20 20 72 41 0a 20 20 20 20 20 20 .>>>.match_iregs.rd....rA.......
cc20 20 20 20 20 20 20 20 20 3e 3e 3e 20 6d 61 74 63 68 5f 69 72 65 67 73 20 72 31 20 20 20 20 72 53 ........>>>.match_iregs.r1....rS
cc40 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3e 3e 3e 20 6d 61 74 63 68 5f 62 6f 6f 6c 73 20 66 ...............>>>.match_bools.f
cc60 61 6c 73 65 20 72 63 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3e 3e 3e 20 72 65 63 75 72 5f alse.rc...............>>>.recur_
cc80 73 69 6d 70 6c 0a 20 20 20 20 20 20 20 20 20 20 7c 20 5f 20 2d 3e 20 65 72 72 6f 72 0a 20 20 20 simpl...........|._.->.error....
cca0 20 20 20 20 20 20 20 65 6e 64 0a 20 20 20 20 20 20 7c 20 50 65 78 74 73 68 28 72 64 2c 20 72 31 .......end.......|.Pextsh(rd,.r1
ccc0 29 20 2d 3e 0a 20 20 20 20 20 20 20 20 20 20 62 65 67 69 6e 20 6d 61 74 63 68 20 65 63 6f 64 65 ).->...........begin.match.ecode
cce0 20 77 69 74 68 0a 20 20 20 20 20 20 20 20 20 20 7c 20 45 58 54 53 48 78 28 72 53 2c 20 72 41 2c .with...........|.EXTSHx(rS,.rA,
cd00 20 72 63 29 20 3a 3a 20 65 73 20 2d 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 66 77 0a 20 .rc).::.es.->...............fw..
cd20 20 20 20 20 20 20 20 20 20 20 20 20 20 3e 3e 3e 20 6d 61 74 63 68 5f 69 72 65 67 73 20 72 64 20 .............>>>.match_iregs.rd.
cd40 20 20 20 72 41 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3e 3e 3e 20 6d 61 74 63 68 5f 69 72 ...rA...............>>>.match_ir
cd60 65 67 73 20 72 31 20 20 20 20 72 53 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3e 3e 3e 20 6d egs.r1....rS...............>>>.m
cd80 61 74 63 68 5f 62 6f 6f 6c 73 20 66 61 6c 73 65 20 72 63 0a 20 20 20 20 20 20 20 20 20 20 20 20 atch_bools.false.rc.............
cda0 20 20 3e 3e 3e 20 72 65 63 75 72 5f 73 69 6d 70 6c 0a 20 20 20 20 20 20 20 20 20 20 7c 20 5f 20 ..>>>.recur_simpl...........|._.
cdc0 2d 3e 20 65 72 72 6f 72 0a 20 20 20 20 20 20 20 20 20 20 65 6e 64 0a 20 20 20 20 20 20 7c 20 50 ->.error...........end.......|.P
cde0 66 61 62 73 28 72 64 2c 20 72 31 29 20 2d 3e 0a 20 20 20 20 20 20 20 20 20 20 62 65 67 69 6e 20 fabs(rd,.r1).->...........begin.
ce00 6d 61 74 63 68 20 65 63 6f 64 65 20 77 69 74 68 0a 20 20 20 20 20 20 20 20 20 20 7c 20 46 41 42 match.ecode.with...........|.FAB
ce20 53 78 28 66 72 44 2c 20 66 72 42 2c 20 72 63 29 20 3a 3a 20 65 73 20 2d 3e 0a 20 20 20 20 20 20 Sx(frD,.frB,.rc).::.es.->.......
ce40 20 20 20 20 20 20 20 20 66 77 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3e 3e 3e 20 6d 61 74 ........fw...............>>>.mat
ce60 63 68 5f 66 72 65 67 73 20 72 64 20 20 20 20 66 72 44 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 ch_fregs.rd....frD..............
ce80 20 3e 3e 3e 20 6d 61 74 63 68 5f 66 72 65 67 73 20 72 31 20 20 20 20 66 72 42 0a 20 20 20 20 20 .>>>.match_fregs.r1....frB......
cea0 20 20 20 20 20 20 20 20 20 3e 3e 3e 20 6d 61 74 63 68 5f 62 6f 6f 6c 73 20 66 61 6c 73 65 20 72 .........>>>.match_bools.false.r
cec0 63 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3e 3e 3e 20 72 65 63 75 72 5f 73 69 6d 70 6c 0a c...............>>>.recur_simpl.
cee0 20 20 20 20 20 20 20 20 20 20 7c 20 5f 20 2d 3e 20 65 72 72 6f 72 0a 20 20 20 20 20 20 20 20 20 ..........|._.->.error..........
cf00 20 65 6e 64 0a 20 20 20 20 20 20 7c 20 50 66 61 64 64 28 72 64 2c 20 72 31 2c 20 72 32 29 20 2d .end.......|.Pfadd(rd,.r1,.r2).-
cf20 3e 0a 20 20 20 20 20 20 20 20 20 20 62 65 67 69 6e 20 6d 61 74 63 68 20 65 63 6f 64 65 20 77 69 >...........begin.match.ecode.wi
cf40 74 68 0a 20 20 20 20 20 20 20 20 20 20 7c 20 46 41 44 44 78 28 66 72 44 2c 20 66 72 41 2c 20 66 th...........|.FADDx(frD,.frA,.f
cf60 72 42 2c 20 72 63 29 20 3a 3a 20 65 73 20 2d 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 66 rB,.rc).::.es.->...............f
cf80 77 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3e 3e 3e 20 6d 61 74 63 68 5f 66 72 65 67 73 20 w...............>>>.match_fregs.
cfa0 72 64 20 20 20 20 66 72 44 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3e 3e 3e 20 6d 61 74 63 rd....frD...............>>>.matc
cfc0 68 5f 66 72 65 67 73 20 72 31 20 20 20 20 66 72 41 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 h_fregs.r1....frA...............
cfe0 3e 3e 3e 20 6d 61 74 63 68 5f 66 72 65 67 73 20 72 32 20 20 20 20 66 72 42 0a 20 20 20 20 20 20 >>>.match_fregs.r2....frB.......
d000 20 20 20 20 20 20 20 20 3e 3e 3e 20 6d 61 74 63 68 5f 62 6f 6f 6c 73 20 66 61 6c 73 65 20 72 63 ........>>>.match_bools.false.rc
d020 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3e 3e 3e 20 72 65 63 75 72 5f 73 69 6d 70 6c 0a 20 ...............>>>.recur_simpl..
d040 20 20 20 20 20 20 20 20 20 7c 20 5f 20 2d 3e 20 65 72 72 6f 72 0a 20 20 20 20 20 20 20 20 20 20 .........|._.->.error...........
d060 65 6e 64 0a 20 20 20 20 20 20 7c 20 50 66 63 6d 70 75 28 72 31 2c 20 72 32 29 20 2d 3e 0a 20 20 end.......|.Pfcmpu(r1,.r2).->...
d080 20 20 20 20 20 20 20 20 62 65 67 69 6e 20 6d 61 74 63 68 20 65 63 6f 64 65 20 77 69 74 68 0a 20 ........begin.match.ecode.with..
d0a0 20 20 20 20 20 20 20 20 20 7c 20 46 43 4d 50 55 28 63 72 66 44 2c 20 66 72 41 2c 20 66 72 42 29 .........|.FCMPU(crfD,.frA,.frB)
d0c0 20 3a 3a 20 65 73 20 2d 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 66 77 0a 20 20 20 20 20 .::.es.->...............fw......
d0e0 20 20 20 20 20 20 20 20 20 3e 3e 3e 20 6d 61 74 63 68 5f 63 72 62 69 74 73 20 43 52 62 69 74 5f .........>>>.match_crbits.CRbit_
d100 30 20 63 72 66 44 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3e 3e 3e 20 6d 61 74 63 68 5f 66 0.crfD...............>>>.match_f
d120 72 65 67 73 20 20 72 31 20 20 20 20 20 20 66 72 41 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 regs..r1......frA...............
d140 3e 3e 3e 20 6d 61 74 63 68 5f 66 72 65 67 73 20 20 72 32 20 20 20 20 20 20 66 72 42 0a 20 20 20 >>>.match_fregs..r2......frB....
d160 20 20 20 20 20 20 20 20 20 20 20 3e 3e 3e 20 72 65 63 75 72 5f 73 69 6d 70 6c 0a 20 20 20 20 20 ...........>>>.recur_simpl......
d180 20 20 20 20 20 7c 20 5f 20 2d 3e 20 65 72 72 6f 72 0a 20 20 20 20 20 20 20 20 20 20 65 6e 64 0a .....|._.->.error...........end.
d1a0 20 20 20 20 20 20 7c 20 50 66 63 74 69 28 72 64 2c 20 72 31 29 20 2d 3e 0a 20 20 20 20 20 20 20 ......|.Pfcti(rd,.r1).->........
d1c0 20 20 20 62 65 67 69 6e 20 6d 61 74 63 68 20 65 63 6f 64 65 20 77 69 74 68 0a 20 20 20 20 20 20 ...begin.match.ecode.with.......
d1e0 20 20 20 20 7c 20 20 20 46 43 54 49 57 5a 78 28 66 72 44 30 2c 20 66 72 42 30 2c 20 72 63 30 29 ....|...FCTIWZx(frD0,.frB0,.rc0)
d200 20 20 20 3a 3a 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 53 54 46 44 55 20 20 28 66 72 53 31 ...::...............STFDU..(frS1
d220 2c 20 72 41 31 2c 20 20 64 31 29 20 20 20 20 3a 3a 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ,.rA1,..d1)....::...............
d240 4c 57 5a 20 20 20 20 28 72 44 32 2c 20 20 72 41 32 2c 20 20 64 32 29 20 20 20 20 3a 3a 0a 20 20 LWZ....(rD2,..rA2,..d2)....::...
d260 20 20 20 20 20 20 20 20 20 20 20 20 41 44 44 49 20 20 20 28 72 44 33 2c 20 20 72 41 33 2c 20 20 ............ADDI...(rD3,..rA3,..
d280 73 69 6d 6d 33 29 20 3a 3a 20 65 73 20 2d 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 66 77 simm3).::.es.->...............fw
d2a0 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3e 3e 3e 20 6d 61 74 63 68 5f 66 72 65 67 73 20 20 ...............>>>.match_fregs..
d2c0 46 50 52 31 33 20 66 72 44 30 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3e 3e 3e 20 6d 61 74 FPR13.frD0...............>>>.mat
d2e0 63 68 5f 66 72 65 67 73 20 20 72 31 20 20 20 20 66 72 42 30 0a 20 20 20 20 20 20 20 20 20 20 20 ch_fregs..r1....frB0............
d300 20 20 20 3e 3e 3e 20 6d 61 74 63 68 5f 62 6f 6f 6c 73 20 20 66 61 6c 73 65 20 72 63 30 0a 20 20 ...>>>.match_bools..false.rc0...
d320 20 20 20 20 20 20 20 20 20 20 20 20 3e 3e 3e 20 6d 61 74 63 68 5f 66 72 65 67 73 20 20 46 50 52 ............>>>.match_fregs..FPR
d340 31 33 20 66 72 53 31 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3e 3e 3e 20 6d 61 74 63 68 5f 13.frS1...............>>>.match_
d360 69 72 65 67 73 20 20 47 50 52 31 20 20 72 41 31 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3e iregs..GPR1..rA1...............>
d380 3e 3e 20 6d 61 74 63 68 5f 69 6e 74 33 32 73 20 28 2d 38 6c 29 20 28 65 78 74 73 20 64 31 29 0a >>.match_int32s.(-8l).(exts.d1).
d3a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3e 3e 3e 20 6d 61 74 63 68 5f 69 72 65 67 73 20 20 72 ..............>>>.match_iregs..r
d3c0 64 20 20 20 20 72 44 32 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3e 3e 3e 20 6d 61 74 63 68 d....rD2...............>>>.match
d3e0 5f 69 72 65 67 73 20 20 47 50 52 31 20 20 72 41 32 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 _iregs..GPR1..rA2...............
d400 3e 3e 3e 20 6d 61 74 63 68 5f 69 6e 74 33 32 73 20 34 6c 20 20 20 20 28 65 78 74 73 20 64 32 29 >>>.match_int32s.4l....(exts.d2)
d420 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3e 3e 3e 20 6d 61 74 63 68 5f 69 72 65 67 73 20 20 ...............>>>.match_iregs..
d440 47 50 52 31 20 20 72 44 33 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3e 3e 3e 20 6d 61 74 63 GPR1..rD3...............>>>.matc
d460 68 5f 69 72 65 67 73 20 20 47 50 52 31 20 20 72 41 33 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 h_iregs..GPR1..rA3..............
d480 20 3e 3e 3e 20 6d 61 74 63 68 5f 69 6e 74 33 32 73 20 38 6c 20 20 20 20 28 65 78 74 73 20 73 69 .>>>.match_int32s.8l....(exts.si
d4a0 6d 6d 33 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3e 3e 3e 20 63 6f 6d 70 61 72 65 5f 63 mm3)...............>>>.compare_c
d4c0 6f 64 65 20 63 73 20 65 73 20 28 49 6e 74 33 32 2e 61 64 64 20 31 36 6c 20 70 63 29 0a 20 20 20 ode.cs.es.(Int32.add.16l.pc)....
d4e0 20 20 20 20 20 20 20 7c 20 5f 20 2d 3e 20 65 72 72 6f 72 0a 20 20 20 20 20 20 20 20 20 20 65 6e .......|._.->.error...........en
d500 64 0a 20 20 20 20 20 20 7c 20 50 66 64 69 76 28 72 64 2c 20 72 31 2c 20 72 32 29 20 2d 3e 0a 20 d.......|.Pfdiv(rd,.r1,.r2).->..
d520 20 20 20 20 20 20 20 20 20 62 65 67 69 6e 20 6d 61 74 63 68 20 65 63 6f 64 65 20 77 69 74 68 0a .........begin.match.ecode.with.
d540 20 20 20 20 20 20 20 20 20 20 7c 20 46 44 49 56 78 28 66 72 44 2c 20 66 72 41 2c 20 66 72 42 2c ..........|.FDIVx(frD,.frA,.frB,
d560 20 72 63 29 20 3a 3a 20 65 73 20 2d 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 66 77 0a 20 .rc).::.es.->...............fw..
d580 20 20 20 20 20 20 20 20 20 20 20 20 20 3e 3e 3e 20 6d 61 74 63 68 5f 66 72 65 67 73 20 72 64 20 .............>>>.match_fregs.rd.
d5a0 20 20 20 66 72 44 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3e 3e 3e 20 6d 61 74 63 68 5f 66 ...frD...............>>>.match_f
d5c0 72 65 67 73 20 72 31 20 20 20 20 66 72 41 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3e 3e 3e regs.r1....frA...............>>>
d5e0 20 6d 61 74 63 68 5f 66 72 65 67 73 20 72 32 20 20 20 20 66 72 42 0a 20 20 20 20 20 20 20 20 20 .match_fregs.r2....frB..........
d600 20 20 20 20 20 3e 3e 3e 20 6d 61 74 63 68 5f 62 6f 6f 6c 73 20 66 61 6c 73 65 20 72 63 0a 20 20 .....>>>.match_bools.false.rc...
d620 20 20 20 20 20 20 20 20 20 20 20 20 3e 3e 3e 20 72 65 63 75 72 5f 73 69 6d 70 6c 0a 20 20 20 20 ............>>>.recur_simpl.....
d640 20 20 20 20 20 20 7c 20 5f 20 2d 3e 20 65 72 72 6f 72 0a 20 20 20 20 20 20 20 20 20 20 65 6e 64 ......|._.->.error...........end
d660 0a 20 20 20 20 20 20 7c 20 50 66 6d 61 6b 65 28 72 64 2c 20 72 31 2c 20 72 32 29 20 2d 3e 0a 20 .......|.Pfmake(rd,.r1,.r2).->..
d680 20 20 20 20 20 20 20 20 20 62 65 67 69 6e 20 6d 61 74 63 68 20 65 63 6f 64 65 20 77 69 74 68 0a .........begin.match.ecode.with.
d6a0 20 20 20 20 20 20 20 20 20 20 7c 20 20 20 53 54 57 55 20 20 28 72 53 30 2c 20 72 41 30 2c 20 64 ..........|...STWU..(rS0,.rA0,.d
d6c0 30 29 20 20 20 20 3a 3a 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 53 54 57 20 20 20 28 72 53 0)....::...............STW...(rS
d6e0 31 2c 20 72 41 31 2c 20 64 31 29 20 20 20 20 3a 3a 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 1,.rA1,.d1)....::...............
d700 4c 46 44 20 20 20 28 66 72 44 32 2c 20 72 41 32 2c 20 64 32 29 20 20 20 3a 3a 0a 20 20 20 20 20 LFD...(frD2,.rA2,.d2)...::......
d720 20 20 20 20 20 20 20 20 20 41 44 44 49 20 20 28 72 44 33 2c 20 72 41 33 2c 20 73 69 6d 6d 33 29 .........ADDI..(rD3,.rA3,.simm3)
d740 20 3a 3a 20 65 73 20 2d 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 66 77 0a 20 20 20 20 20 .::.es.->...............fw......
d760 20 20 20 20 20 20 20 20 20 3e 3e 3e 20 6d 61 74 63 68 5f 69 72 65 67 73 20 20 72 31 20 20 20 20 .........>>>.match_iregs..r1....
d780 72 53 30 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3e 3e 3e 20 6d 61 74 63 68 5f 69 72 65 67 rS0...............>>>.match_ireg
d7a0 73 20 20 47 50 52 31 20 20 72 41 30 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3e 3e 3e 20 6d s..GPR1..rA0...............>>>.m
d7c0 61 74 63 68 5f 69 6e 74 33 32 73 20 28 2d 38 6c 29 20 28 65 78 74 73 20 64 30 29 0a 20 20 20 20 atch_int32s.(-8l).(exts.d0).....
d7e0 20 20 20 20 20 20 20 20 20 20 3e 3e 3e 20 6d 61 74 63 68 5f 69 72 65 67 73 20 20 72 32 20 20 20 ..........>>>.match_iregs..r2...
d800 20 72 53 31 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3e 3e 3e 20 6d 61 74 63 68 5f 69 72 65 .rS1...............>>>.match_ire
d820 67 73 20 20 47 50 52 31 20 20 72 41 31 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3e 3e 3e 20 gs..GPR1..rA1...............>>>.
d840 6d 61 74 63 68 5f 69 6e 74 33 32 73 20 34 6c 20 20 20 20 28 65 78 74 73 20 64 31 29 0a 20 20 20 match_int32s.4l....(exts.d1)....
d860 20 20 20 20 20 20 20 20 20 20 20 3e 3e 3e 20 6d 61 74 63 68 5f 66 72 65 67 73 20 20 72 64 20 20 ...........>>>.match_fregs..rd..
d880 20 20 66 72 44 32 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3e 3e 3e 20 6d 61 74 63 68 5f 69 ..frD2...............>>>.match_i
d8a0 72 65 67 73 20 20 47 50 52 31 20 20 72 41 32 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3e 3e regs..GPR1..rA2...............>>
d8c0 3e 20 6d 61 74 63 68 5f 69 6e 74 33 32 73 20 30 6c 20 20 20 20 28 65 78 74 73 20 64 32 29 0a 20 >.match_int32s.0l....(exts.d2)..
d8e0 20 20 20 20 20 20 20 20 20 20 20 20 20 3e 3e 3e 20 6d 61 74 63 68 5f 69 72 65 67 73 20 20 47 50 .............>>>.match_iregs..GP
d900 52 31 20 20 72 44 33 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3e 3e 3e 20 6d 61 74 63 68 5f R1..rD3...............>>>.match_
d920 69 72 65 67 73 20 20 47 50 52 31 20 20 72 41 33 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3e iregs..GPR1..rA3...............>
d940 3e 3e 20 6d 61 74 63 68 5f 69 6e 74 33 32 73 20 38 6c 20 20 20 20 28 65 78 74 73 20 73 69 6d 6d >>.match_int32s.8l....(exts.simm
d960 33 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3e 3e 3e 20 63 6f 6d 70 61 72 65 5f 63 6f 64 3)...............>>>.compare_cod
d980 65 20 63 73 20 65 73 20 28 49 6e 74 33 32 2e 61 64 64 20 31 36 6c 20 70 63 29 0a 20 20 20 20 20 e.cs.es.(Int32.add.16l.pc)......
d9a0 20 20 20 20 20 7c 20 5f 20 2d 3e 20 65 72 72 6f 72 0a 20 20 20 20 20 20 20 20 20 20 65 6e 64 0a .....|._.->.error...........end.
d9c0 20 20 20 20 20 20 7c 20 50 66 6d 72 28 72 64 2c 20 72 31 29 20 2d 3e 0a 20 20 20 20 20 20 20 20 ......|.Pfmr(rd,.r1).->.........
d9e0 20 20 62 65 67 69 6e 20 6d 61 74 63 68 20 65 63 6f 64 65 20 77 69 74 68 0a 20 20 20 20 20 20 20 ..begin.match.ecode.with........
da00 20 20 20 7c 20 46 4d 52 78 28 66 72 44 2c 20 66 72 42 2c 20 72 63 29 20 3a 3a 20 65 73 20 2d 3e ...|.FMRx(frD,.frB,.rc).::.es.->
da20 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 66 77 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ...............fw...............
da40 3e 3e 3e 20 6d 61 74 63 68 5f 66 72 65 67 73 20 72 64 20 20 20 20 66 72 44 0a 20 20 20 20 20 20 >>>.match_fregs.rd....frD.......
da60 20 20 20 20 20 20 20 20 3e 3e 3e 20 6d 61 74 63 68 5f 66 72 65 67 73 20 72 31 20 20 20 20 66 72 ........>>>.match_fregs.r1....fr
da80 42 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3e 3e 3e 20 6d 61 74 63 68 5f 62 6f 6f 6c 73 20 B...............>>>.match_bools.
daa0 66 61 6c 73 65 20 72 63 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3e 3e 3e 20 72 65 63 75 72 false.rc...............>>>.recur
dac0 5f 73 69 6d 70 6c 0a 20 20 20 20 20 20 20 20 20 20 7c 20 5f 20 2d 3e 20 65 72 72 6f 72 0a 20 20 _simpl...........|._.->.error...
dae0 20 20 20 20 20 20 20 20 65 6e 64 0a 20 20 20 20 20 20 7c 20 50 66 6d 75 6c 28 72 64 2c 20 72 31 ........end.......|.Pfmul(rd,.r1
db00 2c 20 72 32 29 20 2d 3e 0a 20 20 20 20 20 20 20 20 20 20 62 65 67 69 6e 20 6d 61 74 63 68 20 65 ,.r2).->...........begin.match.e
db20 63 6f 64 65 20 77 69 74 68 0a 20 20 20 20 20 20 20 20 20 20 7c 20 46 4d 55 4c 78 28 66 72 44 2c code.with...........|.FMULx(frD,
db40 20 66 72 41 2c 20 66 72 43 2c 20 72 63 29 20 3a 3a 20 65 73 20 2d 3e 0a 20 20 20 20 20 20 20 20 .frA,.frC,.rc).::.es.->.........
db60 20 20 20 20 20 20 66 77 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3e 3e 3e 20 6d 61 74 63 68 ......fw...............>>>.match
db80 5f 66 72 65 67 73 20 72 64 20 20 20 20 66 72 44 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3e _fregs.rd....frD...............>
dba0 3e 3e 20 6d 61 74 63 68 5f 66 72 65 67 73 20 72 31 20 20 20 20 66 72 41 0a 20 20 20 20 20 20 20 >>.match_fregs.r1....frA........
dbc0 20 20 20 20 20 20 20 3e 3e 3e 20 6d 61 74 63 68 5f 66 72 65 67 73 20 72 32 20 20 20 20 66 72 43 .......>>>.match_fregs.r2....frC
dbe0 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3e 3e 3e 20 6d 61 74 63 68 5f 62 6f 6f 6c 73 20 66 ...............>>>.match_bools.f
dc00 61 6c 73 65 20 72 63 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3e 3e 3e 20 72 65 63 75 72 5f alse.rc...............>>>.recur_
dc20 73 69 6d 70 6c 0a 20 20 20 20 20 20 20 20 20 20 7c 20 5f 20 2d 3e 20 65 72 72 6f 72 0a 20 20 20 simpl...........|._.->.error....
dc40 20 20 20 20 20 20 20 65 6e 64 0a 20 20 20 20 20 20 7c 20 50 66 6e 65 67 20 28 72 64 2c 20 72 31 .......end.......|.Pfneg.(rd,.r1
dc60 29 20 2d 3e 0a 20 20 20 20 20 20 20 20 20 20 62 65 67 69 6e 20 6d 61 74 63 68 20 65 63 6f 64 65 ).->...........begin.match.ecode
dc80 20 77 69 74 68 0a 20 20 20 20 20 20 20 20 20 20 7c 20 46 4e 45 47 78 28 66 72 44 2c 20 66 72 42 .with...........|.FNEGx(frD,.frB
dca0 2c 20 72 63 29 20 3a 3a 20 65 73 20 2d 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 66 77 0a ,.rc).::.es.->...............fw.
dcc0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3e 3e 3e 20 6d 61 74 63 68 5f 66 72 65 67 73 20 72 64 ..............>>>.match_fregs.rd
dce0 20 20 20 20 66 72 44 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3e 3e 3e 20 6d 61 74 63 68 5f ....frD...............>>>.match_
dd00 66 72 65 67 73 20 72 31 20 20 20 20 66 72 42 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3e 3e fregs.r1....frB...............>>
dd20 3e 20 6d 61 74 63 68 5f 62 6f 6f 6c 73 20 66 61 6c 73 65 20 72 63 0a 20 20 20 20 20 20 20 20 20 >.match_bools.false.rc..........
dd40 20 20 20 20 20 3e 3e 3e 20 72 65 63 75 72 5f 73 69 6d 70 6c 0a 20 20 20 20 20 20 20 20 20 20 7c .....>>>.recur_simpl...........|
dd60 20 5f 20 2d 3e 20 65 72 72 6f 72 0a 20 20 20 20 20 20 20 20 20 20 65 6e 64 0a 20 20 20 20 20 20 ._.->.error...........end.......
dd80 7c 20 50 66 72 65 65 66 72 61 6d 65 28 73 7a 2c 20 6f 66 73 29 20 2d 3e 0a 20 20 20 20 20 20 20 |.Pfreeframe(sz,.ofs).->........
dda0 20 20 20 62 65 67 69 6e 20 6d 61 74 63 68 20 65 63 6f 64 65 20 77 69 74 68 0a 20 20 20 20 20 20 ...begin.match.ecode.with.......
ddc0 20 20 20 20 7c 20 4c 57 5a 28 72 44 2c 20 72 41 2c 20 64 29 20 3a 3a 20 65 73 20 2d 3e 0a 20 20 ....|.LWZ(rD,.rA,.d).::.es.->...
dde0 20 20 20 20 20 20 20 20 20 20 20 20 66 77 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3e 3e 3e ............fw...............>>>
de00 20 6d 61 74 63 68 5f 69 72 65 67 73 20 20 20 47 50 52 31 20 72 44 0a 20 20 20 20 20 20 20 20 20 .match_iregs...GPR1.rD..........
de20 20 20 20 20 20 3e 3e 3e 20 6d 61 74 63 68 5f 69 72 65 67 73 20 20 20 47 50 52 31 20 72 41 0a 20 .....>>>.match_iregs...GPR1.rA..
de40 20 20 20 20 20 20 20 20 20 20 20 20 20 3e 3e 3e 20 6d 61 74 63 68 5f 7a 5f 69 6e 74 33 32 20 6f .............>>>.match_z_int32.o
de60 66 73 20 20 28 49 6e 74 33 32 2e 6e 65 67 20 28 65 78 74 73 20 64 29 29 0a 20 20 20 20 20 20 20 fs..(Int32.neg.(exts.d))........
de80 20 20 20 20 20 20 20 3e 3e 3e 20 72 65 63 75 72 5f 73 69 6d 70 6c 0a 20 20 20 20 20 20 20 20 20 .......>>>.recur_simpl..........
dea0 20 7c 20 5f 20 2d 3e 20 65 72 72 6f 72 0a 20 20 20 20 20 20 20 20 20 20 65 6e 64 0a 20 20 20 20 .|._.->.error...........end.....
dec0 20 20 7c 20 50 66 72 73 70 28 72 64 2c 20 72 31 29 20 2d 3e 0a 20 20 20 20 20 20 20 20 20 20 62 ..|.Pfrsp(rd,.r1).->...........b
dee0 65 67 69 6e 20 6d 61 74 63 68 20 65 63 6f 64 65 20 77 69 74 68 0a 20 20 20 20 20 20 20 20 20 20 egin.match.ecode.with...........
df00 7c 20 46 52 53 50 78 28 66 72 44 2c 20 66 72 42 2c 20 72 63 29 20 3a 3a 20 65 73 20 2d 3e 0a 20 |.FRSPx(frD,.frB,.rc).::.es.->..
df20 20 20 20 20 20 20 20 20 20 20 20 20 20 66 77 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3e 3e .............fw...............>>
df40 3e 20 6d 61 74 63 68 5f 66 72 65 67 73 20 72 64 20 20 20 20 66 72 44 0a 20 20 20 20 20 20 20 20 >.match_fregs.rd....frD.........
df60 20 20 20 20 20 20 3e 3e 3e 20 6d 61 74 63 68 5f 66 72 65 67 73 20 72 31 20 20 20 20 66 72 42 0a ......>>>.match_fregs.r1....frB.
df80 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3e 3e 3e 20 6d 61 74 63 68 5f 62 6f 6f 6c 73 20 66 61 ..............>>>.match_bools.fa
dfa0 6c 73 65 20 72 63 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3e 3e 3e 20 72 65 63 75 72 5f 73 lse.rc...............>>>.recur_s
dfc0 69 6d 70 6c 0a 20 20 20 20 20 20 20 20 20 20 7c 20 5f 20 2d 3e 20 65 72 72 6f 72 0a 20 20 20 20 impl...........|._.->.error.....
dfe0 20 20 20 20 20 20 65 6e 64 0a 20 20 20 20 20 20 7c 20 50 66 73 75 62 28 72 64 2c 20 72 31 2c 20 ......end.......|.Pfsub(rd,.r1,.
e000 72 32 29 20 2d 3e 0a 20 20 20 20 20 20 20 20 20 20 62 65 67 69 6e 20 6d 61 74 63 68 20 65 63 6f r2).->...........begin.match.eco
e020 64 65 20 77 69 74 68 0a 20 20 20 20 20 20 20 20 20 20 7c 20 46 53 55 42 78 28 66 72 44 2c 20 66 de.with...........|.FSUBx(frD,.f
e040 72 41 2c 20 66 72 42 2c 20 72 63 29 20 3a 3a 20 65 73 20 2d 3e 0a 20 20 20 20 20 20 20 20 20 20 rA,.frB,.rc).::.es.->...........
e060 20 20 20 20 66 77 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3e 3e 3e 20 6d 61 74 63 68 5f 66 ....fw...............>>>.match_f
e080 72 65 67 73 20 72 64 20 20 20 20 66 72 44 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3e 3e 3e regs.rd....frD...............>>>
e0a0 20 6d 61 74 63 68 5f 66 72 65 67 73 20 72 31 20 20 20 20 66 72 41 0a 20 20 20 20 20 20 20 20 20 .match_fregs.r1....frA..........
e0c0 20 20 20 20 20 3e 3e 3e 20 6d 61 74 63 68 5f 66 72 65 67 73 20 72 32 20 20 20 20 66 72 42 0a 20 .....>>>.match_fregs.r2....frB..
e0e0 20 20 20 20 20 20 20 20 20 20 20 20 20 3e 3e 3e 20 6d 61 74 63 68 5f 62 6f 6f 6c 73 20 66 61 6c .............>>>.match_bools.fal
e100 73 65 20 72 63 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3e 3e 3e 20 72 65 63 75 72 5f 73 69 se.rc...............>>>.recur_si
e120 6d 70 6c 0a 20 20 20 20 20 20 20 20 20 20 7c 20 5f 20 2d 3e 20 65 72 72 6f 72 0a 20 20 20 20 20 mpl...........|._.->.error......
e140 20 20 20 20 20 65 6e 64 0a 20 20 20 20 20 20 7c 20 50 6c 61 62 65 6c 28 6c 62 6c 29 20 2d 3e 0a .....end.......|.Plabel(lbl).->.
e160 20 20 20 20 20 20 20 20 20 20 66 77 0a 20 20 20 20 20 20 20 20 20 20 3e 3e 3e 20 6c 62 6c 6d 61 ..........fw...........>>>.lblma
e180 70 5f 75 6e 69 66 79 20 6c 62 6c 20 70 63 0a 20 20 20 20 20 20 20 20 20 20 3e 3e 3f 20 28 66 75 p_unify.lbl.pc...........>>?.(fu
e1a0 6e 20 66 77 20 2d 3e 20 7b 66 77 20 77 69 74 68 20 6c 61 62 65 6c 5f 6c 69 73 74 20 3d 20 6c 62 n.fw.->.{fw.with.label_list.=.lb
e1c0 6c 20 3a 3a 20 66 77 2e 6c 61 62 65 6c 5f 6c 69 73 74 7d 29 0a 20 20 20 20 20 20 20 20 20 20 3e l.::.fw.label_list})...........>
e1e0 3e 3d 20 63 6f 6d 70 61 72 65 5f 63 6f 64 65 20 63 73 20 65 63 6f 64 65 20 70 63 0a 20 20 20 20 >=.compare_code.cs.ecode.pc.....
e200 20 20 7c 20 50 6c 62 7a 28 72 64 2c 20 63 73 74 2c 20 72 31 29 20 2d 3e 0a 20 20 20 20 20 20 20 ..|.Plbz(rd,.cst,.r1).->........
e220 20 20 20 62 65 67 69 6e 20 6d 61 74 63 68 20 65 63 6f 64 65 20 77 69 74 68 0a 20 20 20 20 20 20 ...begin.match.ecode.with.......
e240 20 20 20 20 7c 20 4c 42 5a 28 72 44 2c 20 72 41 2c 20 64 29 20 3a 3a 20 65 73 20 2d 3e 0a 20 20 ....|.LBZ(rD,.rA,.d).::.es.->...
e260 20 20 20 20 20 20 20 20 20 20 20 20 66 77 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3e 3e 3e ............fw...............>>>
e280 20 6d 61 74 63 68 5f 69 72 65 67 73 20 72 64 20 20 72 44 0a 20 20 20 20 20 20 20 20 20 20 20 20 .match_iregs.rd..rD.............
e2a0 20 20 3e 3e 3e 20 6d 61 74 63 68 5f 63 73 74 73 20 20 63 73 74 20 28 65 78 74 73 20 64 29 0a 20 ..>>>.match_csts..cst.(exts.d)..
e2c0 20 20 20 20 20 20 20 20 20 20 20 20 20 3e 3e 3e 20 6d 61 74 63 68 5f 69 72 65 67 73 20 72 31 20 .............>>>.match_iregs.r1.
e2e0 20 72 41 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3e 3e 3e 20 72 65 63 75 72 5f 73 69 6d 70 .rA...............>>>.recur_simp
e300 6c 0a 20 20 20 20 20 20 20 20 20 20 7c 20 5f 20 2d 3e 20 65 72 72 6f 72 0a 20 20 20 20 20 20 20 l...........|._.->.error........
e320 20 20 20 65 6e 64 0a 20 20 20 20 20 20 7c 20 50 6c 62 7a 78 28 72 64 2c 20 72 31 2c 20 72 32 29 ...end.......|.Plbzx(rd,.r1,.r2)
e340 20 2d 3e 0a 20 20 20 20 20 20 20 20 20 20 62 65 67 69 6e 20 6d 61 74 63 68 20 65 63 6f 64 65 20 .->...........begin.match.ecode.
e360 77 69 74 68 0a 20 20 20 20 20 20 20 20 20 20 7c 20 4c 42 5a 58 28 72 44 2c 20 72 41 2c 20 72 42 with...........|.LBZX(rD,.rA,.rB
e380 29 20 3a 3a 20 65 73 20 2d 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 66 77 0a 20 20 20 20 ).::.es.->...............fw.....
e3a0 20 20 20 20 20 20 20 20 20 20 3e 3e 3e 20 6d 61 74 63 68 5f 69 72 65 67 73 20 72 64 20 72 44 0a ..........>>>.match_iregs.rd.rD.
e3c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3e 3e 3e 20 6d 61 74 63 68 5f 69 72 65 67 73 20 72 31 ..............>>>.match_iregs.r1
e3e0 20 72 41 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3e 3e 3e 20 6d 61 74 63 68 5f 69 72 65 67 .rA...............>>>.match_ireg
e400 73 20 72 32 20 72 42 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3e 3e 3e 20 72 65 63 75 72 5f s.r2.rB...............>>>.recur_
e420 73 69 6d 70 6c 0a 20 20 20 20 20 20 20 20 20 20 7c 20 5f 20 2d 3e 20 65 72 72 6f 72 0a 20 20 20 simpl...........|._.->.error....
e440 20 20 20 20 20 20 20 65 6e 64 0a 20 20 20 20 20 20 7c 20 50 6c 66 64 28 72 64 2c 20 63 73 74 2c .......end.......|.Plfd(rd,.cst,
e460 20 72 31 29 20 2d 3e 0a 20 20 20 20 20 20 20 20 20 20 62 65 67 69 6e 20 6d 61 74 63 68 20 65 63 .r1).->...........begin.match.ec
e480 6f 64 65 20 77 69 74 68 0a 20 20 20 20 20 20 20 20 20 20 7c 20 4c 46 44 28 66 72 44 2c 20 72 41 ode.with...........|.LFD(frD,.rA
e4a0 2c 20 64 29 20 3a 3a 20 65 73 20 2d 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 66 77 0a 20 ,.d).::.es.->...............fw..
e4c0 20 20 20 20 20 20 20 20 20 20 20 20 20 3e 3e 3e 20 6d 61 74 63 68 5f 66 72 65 67 73 20 72 64 20 .............>>>.match_fregs.rd.
e4e0 20 66 72 44 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3e 3e 3e 20 6d 61 74 63 68 5f 63 73 74 .frD...............>>>.match_cst
e500 73 20 20 63 73 74 20 28 65 78 74 73 20 64 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3e 3e s..cst.(exts.d)...............>>
e520 3e 20 6d 61 74 63 68 5f 69 72 65 67 73 20 72 31 20 20 72 41 0a 20 20 20 20 20 20 20 20 20 20 20 >.match_iregs.r1..rA............
e540 20 20 20 3e 3e 3e 20 72 65 63 75 72 5f 73 69 6d 70 6c 0a 20 20 20 20 20 20 20 20 20 20 7c 20 5f ...>>>.recur_simpl...........|._
e560 20 2d 3e 20 65 72 72 6f 72 0a 20 20 20 20 20 20 20 20 20 20 65 6e 64 0a 20 20 20 20 20 20 7c 20 .->.error...........end.......|.
e580 50 6c 66 64 78 28 72 64 2c 20 72 31 2c 20 72 32 29 20 2d 3e 0a 20 20 20 20 20 20 20 20 20 20 62 Plfdx(rd,.r1,.r2).->...........b
e5a0 65 67 69 6e 20 6d 61 74 63 68 20 65 63 6f 64 65 20 77 69 74 68 0a 20 20 20 20 20 20 20 20 20 20 egin.match.ecode.with...........
e5c0 7c 20 4c 46 44 58 28 66 72 44 2c 20 72 41 2c 20 72 42 29 20 3a 3a 20 65 73 20 2d 3e 0a 20 20 20 |.LFDX(frD,.rA,.rB).::.es.->....
e5e0 20 20 20 20 20 20 20 20 20 20 20 66 77 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3e 3e 3e 20 ...........fw...............>>>.
e600 6d 61 74 63 68 5f 66 72 65 67 73 20 72 64 20 66 72 44 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 match_fregs.rd.frD..............
e620 20 3e 3e 3e 20 6d 61 74 63 68 5f 69 72 65 67 73 20 72 31 20 72 41 0a 20 20 20 20 20 20 20 20 20 .>>>.match_iregs.r1.rA..........
e640 20 20 20 20 20 3e 3e 3e 20 6d 61 74 63 68 5f 69 72 65 67 73 20 72 32 20 72 42 0a 20 20 20 20 20 .....>>>.match_iregs.r2.rB......
e660 20 20 20 20 20 20 20 20 20 3e 3e 3e 20 72 65 63 75 72 5f 73 69 6d 70 6c 0a 20 20 20 20 20 20 20 .........>>>.recur_simpl........
e680 20 20 20 7c 20 5f 20 2d 3e 20 65 72 72 6f 72 0a 20 20 20 20 20 20 20 20 20 20 65 6e 64 0a 20 20 ...|._.->.error...........end...
e6a0 20 20 20 20 7c 20 50 6c 66 73 28 72 64 2c 20 63 73 74 2c 20 72 31 29 20 2d 3e 0a 20 20 20 20 20 ....|.Plfs(rd,.cst,.r1).->......
e6c0 20 20 20 20 20 62 65 67 69 6e 20 6d 61 74 63 68 20 65 63 6f 64 65 20 77 69 74 68 0a 20 20 20 20 .....begin.match.ecode.with.....
e6e0 20 20 20 20 20 20 7c 20 4c 46 53 28 66 72 44 2c 20 72 41 2c 20 64 29 20 3a 3a 20 65 73 20 2d 3e ......|.LFS(frD,.rA,.d).::.es.->
e700 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 66 77 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ...............fw...............
e720 3e 3e 3e 20 6d 61 74 63 68 5f 66 72 65 67 73 20 72 64 20 20 66 72 44 0a 20 20 20 20 20 20 20 20 >>>.match_fregs.rd..frD.........
e740 20 20 20 20 20 20 3e 3e 3e 20 6d 61 74 63 68 5f 63 73 74 73 20 20 63 73 74 20 28 65 78 74 73 20 ......>>>.match_csts..cst.(exts.
e760 64 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3e 3e 3e 20 6d 61 74 63 68 5f 69 72 65 67 73 d)...............>>>.match_iregs
e780 20 72 31 20 20 72 41 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3e 3e 3e 20 72 65 63 75 72 5f .r1..rA...............>>>.recur_
e7a0 73 69 6d 70 6c 0a 20 20 20 20 20 20 20 20 20 20 7c 20 5f 20 2d 3e 20 65 72 72 6f 72 0a 20 20 20 simpl...........|._.->.error....
e7c0 20 20 20 20 20 20 20 65 6e 64 0a 20 20 20 20 20 20 7c 20 50 6c 66 73 78 28 72 64 2c 20 72 31 2c .......end.......|.Plfsx(rd,.r1,
e7e0 20 72 32 29 20 2d 3e 0a 20 20 20 20 20 20 20 20 20 20 62 65 67 69 6e 20 6d 61 74 63 68 20 65 63 .r2).->...........begin.match.ec
e800 6f 64 65 20 77 69 74 68 0a 20 20 20 20 20 20 20 20 20 20 7c 20 4c 46 53 58 28 66 72 44 2c 20 72 ode.with...........|.LFSX(frD,.r
e820 41 2c 20 72 42 29 20 3a 3a 20 65 73 20 2d 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 66 77 A,.rB).::.es.->...............fw
e840 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3e 3e 3e 20 6d 61 74 63 68 5f 66 72 65 67 73 20 72 ...............>>>.match_fregs.r
e860 64 20 66 72 44 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3e 3e 3e 20 6d 61 74 63 68 5f 69 72 d.frD...............>>>.match_ir
e880 65 67 73 20 72 31 20 72 41 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3e 3e 3e 20 6d 61 74 63 egs.r1.rA...............>>>.matc
e8a0 68 5f 69 72 65 67 73 20 72 32 20 72 42 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3e 3e 3e 20 h_iregs.r2.rB...............>>>.
e8c0 72 65 63 75 72 5f 73 69 6d 70 6c 0a 20 20 20 20 20 20 20 20 20 20 7c 20 5f 20 2d 3e 20 65 72 72 recur_simpl...........|._.->.err
e8e0 6f 72 0a 20 20 20 20 20 20 20 20 20 20 65 6e 64 0a 20 20 20 20 20 20 7c 20 50 6c 68 61 28 72 64 or...........end.......|.Plha(rd
e900 2c 20 63 73 74 2c 20 72 31 29 20 2d 3e 0a 20 20 20 20 20 20 20 20 20 20 62 65 67 69 6e 20 6d 61 ,.cst,.r1).->...........begin.ma
e920 74 63 68 20 65 63 6f 64 65 20 77 69 74 68 0a 20 20 20 20 20 20 20 20 20 20 7c 20 4c 48 41 28 72 tch.ecode.with...........|.LHA(r
e940 44 2c 20 72 41 2c 20 64 29 20 3a 3a 20 65 73 20 2d 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 D,.rA,.d).::.es.->..............
e960 20 66 77 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3e 3e 3e 20 6d 61 74 63 68 5f 69 72 65 67 .fw...............>>>.match_ireg
e980 73 20 72 64 20 20 72 44 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3e 3e 3e 20 6d 61 74 63 68 s.rd..rD...............>>>.match
e9a0 5f 63 73 74 73 20 20 63 73 74 20 28 65 78 74 73 20 64 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 _csts..cst.(exts.d).............
e9c0 20 20 3e 3e 3e 20 6d 61 74 63 68 5f 69 72 65 67 73 20 72 31 20 20 72 41 0a 20 20 20 20 20 20 20 ..>>>.match_iregs.r1..rA........
e9e0 20 20 20 20 20 20 20 3e 3e 3e 20 72 65 63 75 72 5f 73 69 6d 70 6c 0a 20 20 20 20 20 20 20 20 20 .......>>>.recur_simpl..........
ea00 20 7c 20 5f 20 2d 3e 20 65 72 72 6f 72 0a 20 20 20 20 20 20 20 20 20 20 65 6e 64 0a 20 20 20 20 .|._.->.error...........end.....
ea20 20 20 7c 20 50 6c 68 61 78 28 72 64 2c 20 72 31 2c 20 72 32 29 20 2d 3e 0a 20 20 20 20 20 20 20 ..|.Plhax(rd,.r1,.r2).->........
ea40 20 20 20 62 65 67 69 6e 20 6d 61 74 63 68 20 65 63 6f 64 65 20 77 69 74 68 0a 20 20 20 20 20 20 ...begin.match.ecode.with.......
ea60 20 20 20 20 7c 20 4c 48 41 58 28 72 44 2c 20 72 41 2c 20 72 42 29 20 3a 3a 20 65 73 20 2d 3e 0a ....|.LHAX(rD,.rA,.rB).::.es.->.
ea80 20 20 20 20 20 20 20 20 20 20 20 20 20 20 66 77 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3e ..............fw...............>
eaa0 3e 3e 20 6d 61 74 63 68 5f 69 72 65 67 73 20 72 64 20 72 44 0a 20 20 20 20 20 20 20 20 20 20 20 >>.match_iregs.rd.rD............
eac0 20 20 20 3e 3e 3e 20 6d 61 74 63 68 5f 69 72 65 67 73 20 72 31 20 72 41 0a 20 20 20 20 20 20 20 ...>>>.match_iregs.r1.rA........
eae0 20 20 20 20 20 20 20 3e 3e 3e 20 6d 61 74 63 68 5f 69 72 65 67 73 20 72 32 20 72 42 0a 20 20 20 .......>>>.match_iregs.r2.rB....
eb00 20 20 20 20 20 20 20 20 20 20 20 3e 3e 3e 20 72 65 63 75 72 5f 73 69 6d 70 6c 0a 20 20 20 20 20 ...........>>>.recur_simpl......
eb20 20 20 20 20 20 7c 20 5f 20 2d 3e 20 65 72 72 6f 72 0a 20 20 20 20 20 20 20 20 20 20 65 6e 64 0a .....|._.->.error...........end.
eb40 20 20 20 20 20 20 7c 20 50 6c 68 7a 78 28 72 64 2c 20 72 31 2c 20 72 32 29 20 2d 3e 0a 20 20 20 ......|.Plhzx(rd,.r1,.r2).->....
eb60 20 20 20 20 20 20 20 62 65 67 69 6e 20 6d 61 74 63 68 20 65 63 6f 64 65 20 77 69 74 68 0a 20 20 .......begin.match.ecode.with...
eb80 20 20 20 20 20 20 20 20 7c 20 4c 48 5a 58 28 72 44 2c 20 72 41 2c 20 72 42 29 20 3a 3a 20 65 73 ........|.LHZX(rD,.rA,.rB).::.es
eba0 20 2d 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 66 77 0a 20 20 20 20 20 20 20 20 20 20 20 .->...............fw............
ebc0 20 20 20 3e 3e 3e 20 6d 61 74 63 68 5f 69 72 65 67 73 20 72 64 20 72 44 0a 20 20 20 20 20 20 20 ...>>>.match_iregs.rd.rD........
ebe0 20 20 20 20 20 20 20 3e 3e 3e 20 6d 61 74 63 68 5f 69 72 65 67 73 20 72 31 20 72 41 0a 20 20 20 .......>>>.match_iregs.r1.rA....
ec00 20 20 20 20 20 20 20 20 20 20 20 3e 3e 3e 20 6d 61 74 63 68 5f 69 72 65 67 73 20 72 32 20 72 42 ...........>>>.match_iregs.r2.rB
ec20 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3e 3e 3e 20 72 65 63 75 72 5f 73 69 6d 70 6c 0a 20 ...............>>>.recur_simpl..
ec40 20 20 20 20 20 20 20 20 20 7c 20 5f 20 2d 3e 20 65 72 72 6f 72 0a 20 20 20 20 20 20 20 20 20 20 .........|._.->.error...........
ec60 65 6e 64 0a 20 20 20 20 20 20 7c 20 50 6c 66 69 28 72 31 2c 20 63 29 20 2d 3e 0a 20 20 20 20 20 end.......|.Plfi(r1,.c).->......
ec80 20 20 20 20 20 62 65 67 69 6e 20 6d 61 74 63 68 20 65 63 6f 64 65 20 77 69 74 68 0a 20 20 20 20 .....begin.match.ecode.with.....
eca0 20 20 20 20 20 20 7c 20 20 20 41 44 44 49 53 28 72 44 30 2c 20 72 41 30 2c 20 73 69 6d 6d 30 29 ......|...ADDIS(rD0,.rA0,.simm0)
ecc0 20 3a 3a 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 4c 46 44 20 20 28 66 72 44 31 2c 20 72 41 .::...............LFD..(frD1,.rA
ece0 31 2c 20 64 31 29 20 20 20 3a 3a 20 65 73 20 2d 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 1,.d1)...::.es.->...............
ed00 6c 65 74 20 76 61 64 64 72 20 3d 20 49 6e 74 33 32 2e 28 0a 20 20 20 20 20 20 20 20 20 20 20 20 let.vaddr.=.Int32.(.............
ed20 20 20 20 20 61 64 64 20 28 73 68 69 66 74 5f 6c 65 66 74 20 28 53 61 66 65 33 32 2e 6f 66 5f 69 ....add.(shift_left.(Safe32.of_i
ed40 6e 74 20 73 69 6d 6d 30 29 20 31 36 29 20 28 65 78 74 73 20 64 31 29 0a 20 20 20 20 20 20 20 20 nt.simm0).16).(exts.d1).........
ed60 20 20 20 20 20 20 29 20 69 6e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 49 6e 74 33 ......).in...............if.Int3
ed80 32 2e 72 65 6d 20 76 61 64 64 72 20 38 6c 20 3c 3e 20 30 6c 0a 20 20 20 20 20 20 20 20 20 20 20 2.rem.vaddr.8l.<>.0l............
eda0 20 20 20 74 68 65 6e 20 45 52 52 28 22 46 6c 6f 61 74 20 63 6f 6e 73 74 61 6e 74 73 20 73 68 6f ...then.ERR("Float.constants.sho
edc0 75 6c 64 20 62 65 20 38 2d 62 79 74 65 20 61 6c 69 67 6e 65 64 22 29 0a 20 20 20 20 20 20 20 20 uld.be.8-byte.aligned").........
ede0 20 20 20 20 20 20 65 6c 73 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6c 65 74 20 65 ......else.................let.e
ee00 6c 66 20 3d 20 66 77 2e 73 66 2e 65 66 2e 65 6c 66 20 69 6e 0a 20 20 20 20 20 20 20 20 20 20 20 lf.=.fw.sf.ef.elf.in............
ee20 20 20 20 20 20 6c 65 74 20 61 74 6f 6d 20 3d 20 48 61 73 68 74 62 6c 2e 66 69 6e 64 20 66 77 2e .....let.atom.=.Hashtbl.find.fw.
ee40 73 66 2e 61 74 6f 6d 73 20 66 77 2e 74 68 69 73 5f 69 64 65 6e 74 20 69 6e 0a 20 20 20 20 20 20 sf.atoms.fw.this_ident.in.......
ee60 20 20 20 20 20 20 20 20 20 20 6c 65 74 20 6c 69 74 65 72 61 6c 5f 73 65 63 74 69 6f 6e 20 3d 0a ..........let.literal_section.=.
ee80 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 62 65 67 69 6e 20 6d 61 74 63 68 20 61 74 ..................begin.match.at
eea0 6f 6d 2e 61 5f 73 65 63 74 69 6f 6e 73 20 77 69 74 68 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 om.a_sections.with..............
eec0 20 20 20 20 20 7c 20 5b 5f 3b 20 6c 3b 20 5f 5d 20 2d 3e 20 6c 0a 20 20 20 20 20 20 20 20 20 20 .....|.[_;.l;._].->.l...........
eee0 20 20 20 20 20 20 20 20 7c 20 5f 20 2d 3e 20 53 65 63 74 69 6f 6e 5f 6c 69 74 65 72 61 6c 0a 20 ........|._.->.Section_literal..
ef00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 65 6e 64 0a 20 20 20 20 20 20 20 20 20 20 20 .................end............
ef20 20 20 20 20 20 69 6e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 62 65 67 69 6e 20 6d 61 .....in.................begin.ma
ef40 74 63 68 20 73 65 63 74 69 6f 6e 5f 61 74 5f 76 61 64 64 72 20 65 6c 66 20 76 61 64 64 72 20 77 tch.section_at_vaddr.elf.vaddr.w
ef60 69 74 68 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7c 20 4e 6f 6e 65 20 2d 3e 0a 20 20 ith.................|.None.->...
ef80 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 45 52 52 28 22 46 6c 6f 61 74 20 6c 69 74 ..................ERR("Float.lit
efa0 65 72 61 6c 27 73 20 76 69 72 74 75 61 6c 20 61 64 64 72 65 73 73 20 6f 75 74 20 6f 66 20 61 6e eral's.virtual.address.out.of.an
efc0 79 20 73 65 63 74 69 6f 6e 22 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7c 20 53 6f y.section").................|.So
efe0 6d 65 28 73 6e 64 78 29 20 2d 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 me(sndx).->.....................
f000 6c 65 74 20 73 65 63 74 69 6f 6e 5f 62 69 74 73 74 72 69 6e 67 20 3d 20 62 69 74 73 74 72 69 6e let.section_bitstring.=.bitstrin
f020 67 5f 61 74 5f 76 61 64 64 72 20 65 6c 66 20 73 6e 64 78 20 69 6e 0a 20 20 20 20 20 20 20 20 20 g_at_vaddr.elf.sndx.in..........
f040 20 20 20 20 20 20 20 20 20 20 20 6c 65 74 20 66 20 3d 20 28 0a 20 20 20 20 20 20 20 20 20 20 20 ...........let.f.=.(............
f060 20 20 20 20 20 20 20 20 20 20 20 62 69 74 6d 61 74 63 68 20 28 73 65 63 74 69 6f 6e 5f 62 69 74 ...........bitmatch.(section_bit
f080 73 74 72 69 6e 67 20 76 61 64 64 72 20 36 34 29 20 77 69 74 68 0a 20 20 20 20 20 20 20 20 20 20 string.vaddr.64).with...........
f0a0 20 20 20 20 20 20 20 20 20 20 20 20 7c 20 7b 20 66 20 3a 20 36 34 20 3a 20 69 6e 74 20 7d 20 2d ............|.{.f.:.64.:.int.}.-
f0c0 3e 20 49 6e 74 36 34 2e 66 6c 6f 61 74 5f 6f 66 5f 62 69 74 73 20 66 0a 20 20 20 20 20 20 20 20 >.Int64.float_of_bits.f.........
f0e0 20 20 20 20 20 20 20 20 20 20 20 20 29 20 69 6e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ............).in................
f100 20 20 20 20 20 6c 65 74 20 6f 66 73 20 3d 20 70 68 79 73 69 63 61 6c 5f 6f 66 66 73 65 74 5f 6f .....let.ofs.=.physical_offset_o
f120 66 5f 76 61 64 64 72 20 65 6c 66 20 73 6e 64 78 20 76 61 64 64 72 20 69 6e 0a 20 20 20 20 20 20 f_vaddr.elf.sndx.vaddr.in.......
f140 20 20 20 20 20 20 20 20 20 20 20 20 20 20 66 77 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ..............fw................
f160 20 20 20 20 20 3e 3e 3e 20 28 66 66 5f 73 66 20 5e 25 3d 0a 20 20 20 20 20 20 20 20 20 20 20 20 .....>>>.(ff_sf.^%=.............
f180 20 20 20 20 20 20 20 20 20 20 20 20 6d 61 74 63 68 5f 73 65 63 74 69 6f 6e 73 5f 6e 61 6d 65 0a ............match_sections_name.
f1a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6c 69 74 65 72 61 ..........................litera
f1c0 6c 5f 73 65 63 74 69 6f 6e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 l_section.......................
f1e0 20 20 20 20 65 6c 66 2e 65 5f 73 68 64 72 61 2e 28 73 6e 64 78 29 2e 73 68 5f 6e 61 6d 65 0a 20 ....elf.e_shdra.(sndx).sh_name..
f200 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 29 0a 20 20 20 20 20 20 20 20 20 20 20 ...................)............
f220 20 20 20 20 20 20 20 20 20 3e 3e 3e 20 6d 61 74 63 68 5f 69 72 65 67 73 20 20 47 50 52 31 32 20 .........>>>.match_iregs..GPR12.
f240 72 44 30 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3e 3e 3e 20 6d 61 74 63 rD0.....................>>>.matc
f260 68 5f 69 72 65 67 73 20 20 47 50 52 30 20 20 72 41 30 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 h_iregs..GPR0..rA0..............
f280 20 20 20 20 20 20 20 3e 3e 3e 20 6d 61 74 63 68 5f 66 72 65 67 73 20 20 72 31 20 20 20 20 66 72 .......>>>.match_fregs..r1....fr
f2a0 44 31 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3e 3e 3e 20 6d 61 74 63 68 D1.....................>>>.match
f2c0 5f 66 6c 6f 61 74 73 20 63 20 20 20 20 20 66 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 _floats.c.....f.................
f2e0 20 20 20 20 3e 3e 3e 20 28 66 66 5f 65 66 20 5e 25 3d 20 61 64 64 5f 72 61 6e 67 65 20 6f 66 73 ....>>>.(ff_ef.^%=.add_range.ofs
f300 20 38 6c 20 38 20 28 46 6c 6f 61 74 5f 6c 69 74 65 72 61 6c 28 66 29 29 29 0a 20 20 20 20 20 20 .8l.8.(Float_literal(f))).......
f320 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3e 3e 3e 20 6d 61 74 63 68 5f 69 72 65 67 73 20 20 47 ..............>>>.match_iregs..G
f340 50 52 31 32 20 72 41 31 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3e 3e 3e PR12.rA1.....................>>>
f360 20 63 6f 6d 70 61 72 65 5f 63 6f 64 65 20 63 73 20 65 73 20 28 49 6e 74 33 32 2e 61 64 64 20 38 .compare_code.cs.es.(Int32.add.8
f380 6c 20 70 63 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 65 6e 64 0a 20 20 20 20 20 20 l.pc).................end.......
f3a0 20 20 20 20 7c 20 5f 20 2d 3e 20 65 72 72 6f 72 0a 20 20 20 20 20 20 20 20 20 20 65 6e 64 0a 20 ....|._.->.error...........end..
f3c0 20 20 20 20 20 7c 20 50 6c 68 7a 28 72 64 2c 20 63 73 74 2c 20 72 31 29 20 2d 3e 0a 20 20 20 20 .....|.Plhz(rd,.cst,.r1).->.....
f3e0 20 20 20 20 20 20 62 65 67 69 6e 20 6d 61 74 63 68 20 65 63 6f 64 65 20 77 69 74 68 0a 20 20 20 ......begin.match.ecode.with....
f400 20 20 20 20 20 20 20 7c 20 4c 48 5a 28 72 44 2c 20 72 41 2c 20 64 29 20 3a 3a 20 65 73 20 2d 3e .......|.LHZ(rD,.rA,.d).::.es.->
f420 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 66 77 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ...............fw...............
f440 3e 3e 3e 20 6d 61 74 63 68 5f 69 72 65 67 73 20 72 64 20 20 72 44 0a 20 20 20 20 20 20 20 20 20 >>>.match_iregs.rd..rD..........
f460 20 20 20 20 20 3e 3e 3e 20 6d 61 74 63 68 5f 63 73 74 73 20 20 63 73 74 20 28 65 78 74 73 20 64 .....>>>.match_csts..cst.(exts.d
f480 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3e 3e 3e 20 6d 61 74 63 68 5f 69 72 65 67 73 20 )...............>>>.match_iregs.
f4a0 72 31 20 20 72 41 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3e 3e 3e 20 72 65 63 75 72 5f 73 r1..rA...............>>>.recur_s
f4c0 69 6d 70 6c 0a 20 20 20 20 20 20 20 20 20 20 7c 20 5f 20 2d 3e 20 65 72 72 6f 72 0a 20 20 20 20 impl...........|._.->.error.....
f4e0 20 20 20 20 20 20 65 6e 64 0a 20 20 20 20 20 20 7c 20 50 6c 77 7a 28 72 64 2c 20 63 73 74 2c 20 ......end.......|.Plwz(rd,.cst,.
f500 72 31 29 20 2d 3e 0a 20 20 20 20 20 20 20 20 20 20 62 65 67 69 6e 20 6d 61 74 63 68 20 65 63 6f r1).->...........begin.match.eco
f520 64 65 20 77 69 74 68 0a 20 20 20 20 20 20 20 20 20 20 7c 20 4c 57 5a 28 72 44 2c 20 72 41 2c 20 de.with...........|.LWZ(rD,.rA,.
f540 64 29 20 3a 3a 20 65 73 20 2d 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 66 77 0a 20 20 20 d).::.es.->...............fw....
f560 20 20 20 20 20 20 20 20 20 20 20 3e 3e 3e 20 6d 61 74 63 68 5f 69 72 65 67 73 20 72 64 20 20 72 ...........>>>.match_iregs.rd..r
f580 44 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3e 3e 3e 20 6d 61 74 63 68 5f 69 72 65 67 73 20 D...............>>>.match_iregs.
f5a0 72 31 20 20 72 41 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3e 3e 3e 20 6d 61 74 63 68 5f 63 r1..rA...............>>>.match_c
f5c0 73 74 73 20 20 63 73 74 20 28 65 78 74 73 20 64 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 sts..cst.(exts.d)...............
f5e0 3e 3e 3e 20 72 65 63 75 72 5f 73 69 6d 70 6c 0a 20 20 20 20 20 20 20 20 20 20 7c 20 5f 20 2d 3e >>>.recur_simpl...........|._.->
f600 20 65 72 72 6f 72 0a 20 20 20 20 20 20 20 20 20 20 65 6e 64 0a 20 20 20 20 20 20 7c 20 50 6c 77 .error...........end.......|.Plw
f620 7a 78 28 72 64 2c 20 72 31 2c 20 72 32 29 20 2d 3e 0a 20 20 20 20 20 20 20 20 20 20 62 65 67 69 zx(rd,.r1,.r2).->...........begi
f640 6e 20 6d 61 74 63 68 20 65 63 6f 64 65 20 77 69 74 68 0a 20 20 20 20 20 20 20 20 20 20 7c 20 4c n.match.ecode.with...........|.L
f660 57 5a 58 28 72 44 2c 20 72 41 2c 20 72 42 29 20 3a 3a 20 65 73 20 2d 3e 0a 20 20 20 20 20 20 20 WZX(rD,.rA,.rB).::.es.->........
f680 20 20 20 20 20 20 20 66 77 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3e 3e 3e 20 6d 61 74 63 .......fw...............>>>.matc
f6a0 68 5f 69 72 65 67 73 20 72 64 20 72 44 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3e 3e 3e 20 h_iregs.rd.rD...............>>>.
f6c0 6d 61 74 63 68 5f 69 72 65 67 73 20 72 31 20 72 41 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 match_iregs.r1.rA...............
f6e0 3e 3e 3e 20 6d 61 74 63 68 5f 69 72 65 67 73 20 72 32 20 72 42 0a 20 20 20 20 20 20 20 20 20 20 >>>.match_iregs.r2.rB...........
f700 20 20 20 20 3e 3e 3e 20 72 65 63 75 72 5f 73 69 6d 70 6c 0a 20 20 20 20 20 20 20 20 20 20 7c 20 ....>>>.recur_simpl...........|.
f720 5f 20 2d 3e 20 65 72 72 6f 72 0a 20 20 20 20 20 20 20 20 20 20 65 6e 64 0a 20 20 20 20 20 20 7c _.->.error...........end.......|
f740 20 50 6d 66 63 72 62 69 74 28 72 64 2c 20 62 69 74 29 20 2d 3e 0a 20 20 20 20 20 20 20 20 20 20 .Pmfcrbit(rd,.bit).->...........
f760 62 65 67 69 6e 20 6d 61 74 63 68 20 65 63 6f 64 65 20 77 69 74 68 0a 20 20 20 20 20 20 20 20 20 begin.match.ecode.with..........
f780 20 7c 20 20 20 4d 46 43 52 20 20 20 28 72 44 30 29 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .|...MFCR...(rD0)...............
f7a0 20 20 20 20 20 20 20 20 20 20 20 3a 3a 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 52 4c 57 49 ...........::...............RLWI
f7c0 4e 4d 78 28 72 53 31 2c 20 72 41 31 2c 20 73 68 31 2c 20 6d 62 31 2c 20 6d 65 31 2c 20 72 63 31 NMx(rS1,.rA1,.sh1,.mb1,.me1,.rc1
f7e0 29 20 3a 3a 20 65 73 20 2d 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 66 77 0a 20 20 20 20 ).::.es.->...............fw.....
f800 20 20 20 20 20 20 20 20 20 20 3e 3e 3e 20 6d 61 74 63 68 5f 69 72 65 67 73 20 20 72 64 20 20 20 ..........>>>.match_iregs..rd...
f820 20 72 44 30 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3e 3e 3e 20 6d 61 74 63 68 5f 69 72 65 .rD0...............>>>.match_ire
f840 67 73 20 20 72 64 20 20 20 20 72 53 31 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3e 3e 3e 20 gs..rd....rS1...............>>>.
f860 6d 61 74 63 68 5f 69 72 65 67 73 20 20 72 64 20 20 20 20 72 41 31 0a 20 20 20 20 20 20 20 20 20 match_iregs..rd....rA1..........
f880 20 20 20 20 20 3e 3e 3e 20 6d 61 74 63 68 5f 63 72 62 69 74 73 20 62 69 74 20 20 20 28 73 68 31 .....>>>.match_crbits.bit...(sh1
f8a0 20 2d 20 31 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3e 3e 3e 20 6d 61 74 63 68 5f 69 6e .-.1)...............>>>.match_in
f8c0 74 73 20 20 20 33 31 20 20 20 20 6d 62 31 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3e 3e 3e ts...31....mb1...............>>>
f8e0 20 6d 61 74 63 68 5f 69 6e 74 73 20 20 20 33 31 20 20 20 20 6d 65 31 0a 20 20 20 20 20 20 20 20 .match_ints...31....me1.........
f900 20 20 20 20 20 20 3e 3e 3e 20 6d 61 74 63 68 5f 62 6f 6f 6c 73 20 20 66 61 6c 73 65 20 72 63 31 ......>>>.match_bools..false.rc1
f920 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3e 3e 3e 20 63 6f 6d 70 61 72 65 5f 63 6f 64 65 20 ...............>>>.compare_code.
f940 63 73 20 65 73 20 28 49 6e 74 33 32 2e 61 64 64 20 38 6c 20 70 63 29 0a 20 20 20 20 20 20 20 20 cs.es.(Int32.add.8l.pc).........
f960 20 20 7c 20 5f 20 2d 3e 20 65 72 72 6f 72 0a 20 20 20 20 20 20 20 20 20 20 65 6e 64 0a 20 20 20 ..|._.->.error...........end....
f980 20 20 20 7c 20 50 6d 66 6c 72 28 72 29 20 2d 3e 0a 20 20 20 20 20 20 20 20 20 20 62 65 67 69 6e ...|.Pmflr(r).->...........begin
f9a0 20 6d 61 74 63 68 20 65 63 6f 64 65 20 77 69 74 68 0a 20 20 20 20 20 20 20 20 20 20 7c 20 4d 46 .match.ecode.with...........|.MF
f9c0 53 50 52 28 72 44 2c 20 73 70 72 29 20 3a 3a 20 65 73 20 2d 3e 0a 20 20 20 20 20 20 20 20 20 20 SPR(rD,.spr).::.es.->...........
f9e0 20 20 20 20 66 77 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3e 3e 3e 20 6d 61 74 63 68 5f 69 ....fw...............>>>.match_i
fa00 72 65 67 73 20 72 20 20 20 72 44 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3e 3e 3e 20 6d 61 regs.r...rD...............>>>.ma
fa20 74 63 68 5f 6c 72 20 20 20 20 73 70 72 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3e 3e 3e 20 tch_lr....spr...............>>>.
fa40 72 65 63 75 72 5f 73 69 6d 70 6c 0a 20 20 20 20 20 20 20 20 20 20 7c 20 5f 20 2d 3e 20 65 72 72 recur_simpl...........|._.->.err
fa60 6f 72 0a 20 20 20 20 20 20 20 20 20 20 65 6e 64 0a 20 20 20 20 20 20 7c 20 50 6d 72 28 72 64 2c or...........end.......|.Pmr(rd,
fa80 20 72 31 29 20 2d 3e 0a 20 20 20 20 20 20 20 20 20 20 62 65 67 69 6e 20 6d 61 74 63 68 20 65 63 .r1).->...........begin.match.ec
faa0 6f 64 65 20 77 69 74 68 0a 20 20 20 20 20 20 20 20 20 20 7c 20 4f 52 78 28 72 53 2c 20 72 41 2c ode.with...........|.ORx(rS,.rA,
fac0 20 72 42 2c 20 72 63 29 20 3a 3a 20 65 73 20 77 68 65 6e 20 28 72 42 20 3d 20 72 53 29 20 2d 3e .rB,.rc).::.es.when.(rB.=.rS).->
fae0 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 66 77 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ...............fw...............
fb00 3e 3e 3e 20 6d 61 74 63 68 5f 69 72 65 67 73 20 72 64 20 20 20 20 72 41 0a 20 20 20 20 20 20 20 >>>.match_iregs.rd....rA........
fb20 20 20 20 20 20 20 20 3e 3e 3e 20 6d 61 74 63 68 5f 69 72 65 67 73 20 72 31 20 20 20 20 72 53 0a .......>>>.match_iregs.r1....rS.
fb40 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3e 3e 3e 20 6d 61 74 63 68 5f 62 6f 6f 6c 73 20 66 61 ..............>>>.match_bools.fa
fb60 6c 73 65 20 72 63 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3e 3e 3e 20 72 65 63 75 72 5f 73 lse.rc...............>>>.recur_s
fb80 69 6d 70 6c 0a 20 20 20 20 20 20 20 20 20 20 7c 20 5f 20 2d 3e 20 65 72 72 6f 72 0a 20 20 20 20 impl...........|._.->.error.....
fba0 20 20 20 20 20 20 65 6e 64 0a 20 20 20 20 20 20 7c 20 50 6d 74 63 74 72 28 72 31 29 20 2d 3e 0a ......end.......|.Pmtctr(r1).->.
fbc0 20 20 20 20 20 20 20 20 20 20 62 65 67 69 6e 20 6d 61 74 63 68 20 65 63 6f 64 65 20 77 69 74 68 ..........begin.match.ecode.with
fbe0 0a 20 20 20 20 20 20 20 20 20 20 7c 20 4d 54 53 50 52 28 72 53 2c 20 73 70 72 29 20 3a 3a 20 65 ...........|.MTSPR(rS,.spr).::.e
fc00 73 20 2d 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 66 77 0a 20 20 20 20 20 20 20 20 20 20 s.->...............fw...........
fc20 20 20 20 20 3e 3e 3e 20 6d 61 74 63 68 5f 69 72 65 67 73 20 72 31 20 72 53 0a 20 20 20 20 20 20 ....>>>.match_iregs.r1.rS.......
fc40 20 20 20 20 20 20 20 20 3e 3e 3e 20 6d 61 74 63 68 5f 63 74 72 20 20 20 73 70 72 0a 20 20 20 20 ........>>>.match_ctr...spr.....
fc60 20 20 20 20 20 20 20 20 20 20 3e 3e 3e 20 72 65 63 75 72 5f 73 69 6d 70 6c 0a 20 20 20 20 20 20 ..........>>>.recur_simpl.......
fc80 20 20 20 20 7c 20 5f 20 2d 3e 20 65 72 72 6f 72 0a 20 20 20 20 20 20 20 20 20 20 65 6e 64 0a 20 ....|._.->.error...........end..
fca0 20 20 20 20 20 7c 20 50 6d 74 6c 72 28 72 31 29 20 2d 3e 0a 20 20 20 20 20 20 20 20 20 20 62 65 .....|.Pmtlr(r1).->...........be
fcc0 67 69 6e 20 6d 61 74 63 68 20 65 63 6f 64 65 20 77 69 74 68 0a 20 20 20 20 20 20 20 20 20 20 7c gin.match.ecode.with...........|
fce0 20 4d 54 53 50 52 28 72 53 2c 20 73 70 72 29 20 3a 3a 20 65 73 20 2d 3e 0a 20 20 20 20 20 20 20 .MTSPR(rS,.spr).::.es.->........
fd00 20 20 20 20 20 20 20 66 77 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3e 3e 3e 20 6d 61 74 63 .......fw...............>>>.matc
fd20 68 5f 69 72 65 67 73 20 72 31 20 20 72 53 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3e 3e 3e h_iregs.r1..rS...............>>>
fd40 20 6d 61 74 63 68 5f 6c 72 20 20 20 20 73 70 72 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3e .match_lr....spr...............>
fd60 3e 3e 20 72 65 63 75 72 5f 73 69 6d 70 6c 0a 20 20 20 20 20 20 20 20 20 20 7c 20 5f 20 2d 3e 20 >>.recur_simpl...........|._.->.
fd80 65 72 72 6f 72 0a 20 20 20 20 20 20 20 20 20 20 65 6e 64 0a 20 20 20 20 20 20 7c 20 50 6d 75 6c error...........end.......|.Pmul
fda0 6c 69 28 72 64 2c 20 72 31 2c 20 63 73 74 29 20 2d 3e 0a 20 20 20 20 20 20 20 20 20 20 62 65 67 li(rd,.r1,.cst).->...........beg
fdc0 69 6e 20 6d 61 74 63 68 20 65 63 6f 64 65 20 77 69 74 68 0a 20 20 20 20 20 20 20 20 20 20 7c 20 in.match.ecode.with...........|.
fde0 4d 55 4c 4c 49 28 72 44 2c 20 72 41 2c 20 73 69 6d 6d 29 20 3a 3a 20 65 73 20 2d 3e 0a 20 20 20 MULLI(rD,.rA,.simm).::.es.->....
fe00 20 20 20 20 20 20 20 20 20 20 20 66 77 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3e 3e 3e 20 ...........fw...............>>>.
fe20 6d 61 74 63 68 5f 69 72 65 67 73 20 72 64 20 20 72 44 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 match_iregs.rd..rD..............
fe40 20 3e 3e 3e 20 6d 61 74 63 68 5f 69 72 65 67 73 20 72 31 20 20 72 41 0a 20 20 20 20 20 20 20 20 .>>>.match_iregs.r1..rA.........
fe60 20 20 20 20 20 20 3e 3e 3e 20 6d 61 74 63 68 5f 63 73 74 73 20 20 63 73 74 20 28 65 78 74 73 20 ......>>>.match_csts..cst.(exts.
fe80 73 69 6d 6d 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3e 3e 3e 20 72 65 63 75 72 5f 73 69 simm)...............>>>.recur_si
fea0 6d 70 6c 0a 20 20 20 20 20 20 20 20 20 20 7c 20 5f 20 2d 3e 20 65 72 72 6f 72 0a 20 20 20 20 20 mpl...........|._.->.error......
fec0 20 20 20 20 20 65 6e 64 0a 20 20 20 20 20 20 7c 20 50 6d 75 6c 6c 77 28 72 64 2c 20 72 31 2c 20 .....end.......|.Pmullw(rd,.r1,.
fee0 72 32 29 20 2d 3e 0a 20 20 20 20 20 20 20 20 20 20 62 65 67 69 6e 20 6d 61 74 63 68 20 65 63 6f r2).->...........begin.match.eco
ff00 64 65 20 77 69 74 68 0a 20 20 20 20 20 20 20 20 20 20 7c 20 4d 55 4c 4c 57 78 28 72 44 2c 20 72 de.with...........|.MULLWx(rD,.r
ff20 41 2c 20 72 42 2c 20 6f 65 2c 20 72 63 29 20 3a 3a 20 65 73 20 2d 3e 0a 20 20 20 20 20 20 20 20 A,.rB,.oe,.rc).::.es.->.........
ff40 20 20 20 20 20 20 66 77 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3e 3e 3e 20 6d 61 74 63 68 ......fw...............>>>.match
ff60 5f 69 72 65 67 73 20 72 64 20 20 20 20 72 44 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3e 3e _iregs.rd....rD...............>>
ff80 3e 20 6d 61 74 63 68 5f 69 72 65 67 73 20 72 31 20 20 20 20 72 41 0a 20 20 20 20 20 20 20 20 20 >.match_iregs.r1....rA..........
ffa0 20 20 20 20 20 3e 3e 3e 20 6d 61 74 63 68 5f 69 72 65 67 73 20 72 32 20 20 20 20 72 42 0a 20 20 .....>>>.match_iregs.r2....rB...
ffc0 20 20 20 20 20 20 20 20 20 20 20 20 3e 3e 3e 20 6d 61 74 63 68 5f 62 6f 6f 6c 73 20 66 61 6c 73 ............>>>.match_bools.fals
ffe0 65 20 6f 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3e 3e 3e 20 6d 61 74 63 68 5f 62 6f 6f e.oe...............>>>.match_boo
10000 6c 73 20 66 61 6c 73 65 20 72 63 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3e 3e 3e 20 72 65 ls.false.rc...............>>>.re
10020 63 75 72 5f 73 69 6d 70 6c 0a 20 20 20 20 20 20 20 20 20 20 7c 20 5f 20 2d 3e 20 65 72 72 6f 72 cur_simpl...........|._.->.error
10040 0a 20 20 20 20 20 20 20 20 20 20 65 6e 64 0a 20 20 20 20 20 20 7c 20 50 6e 61 6e 64 28 72 64 2c ...........end.......|.Pnand(rd,
10060 20 72 31 2c 20 72 32 29 20 2d 3e 0a 20 20 20 20 20 20 20 20 20 20 62 65 67 69 6e 20 6d 61 74 63 .r1,.r2).->...........begin.matc
10080 68 20 65 63 6f 64 65 20 77 69 74 68 0a 20 20 20 20 20 20 20 20 20 20 7c 20 4e 41 4e 44 78 28 72 h.ecode.with...........|.NANDx(r
100a0 53 2c 20 72 41 2c 20 72 42 2c 20 72 63 29 20 3a 3a 20 65 73 20 2d 3e 0a 20 20 20 20 20 20 20 20 S,.rA,.rB,.rc).::.es.->.........
100c0 20 20 20 20 20 20 66 77 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3e 3e 3e 20 6d 61 74 63 68 ......fw...............>>>.match
100e0 5f 69 72 65 67 73 20 72 64 20 20 20 20 72 41 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3e 3e _iregs.rd....rA...............>>
10100 3e 20 6d 61 74 63 68 5f 69 72 65 67 73 20 72 31 20 20 20 20 72 53 0a 20 20 20 20 20 20 20 20 20 >.match_iregs.r1....rS..........
10120 20 20 20 20 20 3e 3e 3e 20 6d 61 74 63 68 5f 69 72 65 67 73 20 72 32 20 20 20 20 72 42 0a 20 20 .....>>>.match_iregs.r2....rB...
10140 20 20 20 20 20 20 20 20 20 20 20 20 3e 3e 3e 20 6d 61 74 63 68 5f 62 6f 6f 6c 73 20 66 61 6c 73 ............>>>.match_bools.fals
10160 65 20 72 63 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3e 3e 3e 20 72 65 63 75 72 5f 73 69 6d e.rc...............>>>.recur_sim
10180 70 6c 0a 20 20 20 20 20 20 20 20 20 20 7c 20 5f 20 2d 3e 20 65 72 72 6f 72 0a 20 20 20 20 20 20 pl...........|._.->.error.......
101a0 20 20 20 20 65 6e 64 0a 20 20 20 20 20 20 7c 20 50 6e 6f 72 28 72 64 2c 20 72 31 2c 20 72 32 29 ....end.......|.Pnor(rd,.r1,.r2)
101c0 20 2d 3e 0a 20 20 20 20 20 20 20 20 20 20 62 65 67 69 6e 20 6d 61 74 63 68 20 65 63 6f 64 65 20 .->...........begin.match.ecode.
101e0 77 69 74 68 0a 20 20 20 20 20 20 20 20 20 20 7c 20 4e 4f 52 78 28 72 53 2c 20 72 41 2c 20 72 42 with...........|.NORx(rS,.rA,.rB
10200 2c 20 72 63 29 20 3a 3a 20 65 73 20 2d 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 66 77 0a ,.rc).::.es.->...............fw.
10220 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3e 3e 3e 20 6d 61 74 63 68 5f 69 72 65 67 73 20 72 64 ..............>>>.match_iregs.rd
10240 20 20 20 20 72 41 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3e 3e 3e 20 6d 61 74 63 68 5f 69 ....rA...............>>>.match_i
10260 72 65 67 73 20 72 31 20 20 20 20 72 53 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3e 3e 3e 20 regs.r1....rS...............>>>.
10280 6d 61 74 63 68 5f 69 72 65 67 73 20 72 32 20 20 20 20 72 42 0a 20 20 20 20 20 20 20 20 20 20 20 match_iregs.r2....rB............
102a0 20 20 20 3e 3e 3e 20 6d 61 74 63 68 5f 62 6f 6f 6c 73 20 66 61 6c 73 65 20 72 63 0a 20 20 20 20 ...>>>.match_bools.false.rc.....
102c0 20 20 20 20 20 20 20 20 20 20 3e 3e 3e 20 72 65 63 75 72 5f 73 69 6d 70 6c 0a 20 20 20 20 20 20 ..........>>>.recur_simpl.......
102e0 20 20 20 20 7c 20 5f 20 2d 3e 20 65 72 72 6f 72 0a 20 20 20 20 20 20 20 20 20 20 65 6e 64 0a 20 ....|._.->.error...........end..
10300 20 20 20 20 20 7c 20 50 6f 72 28 72 64 2c 20 72 31 2c 20 72 32 29 20 2d 3e 0a 20 20 20 20 20 20 .....|.Por(rd,.r1,.r2).->.......
10320 20 20 20 20 62 65 67 69 6e 20 6d 61 74 63 68 20 65 63 6f 64 65 20 77 69 74 68 0a 20 20 20 20 20 ....begin.match.ecode.with......
10340 20 20 20 20 20 7c 20 4f 52 78 28 72 53 2c 20 72 41 2c 20 72 42 2c 20 72 63 29 20 3a 3a 20 65 73 .....|.ORx(rS,.rA,.rB,.rc).::.es
10360 20 2d 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 66 77 0a 20 20 20 20 20 20 20 20 20 20 20 .->...............fw............
10380 20 20 20 3e 3e 3e 20 6d 61 74 63 68 5f 69 72 65 67 73 20 72 64 20 20 20 20 72 41 0a 20 20 20 20 ...>>>.match_iregs.rd....rA.....
103a0 20 20 20 20 20 20 20 20 20 20 3e 3e 3e 20 6d 61 74 63 68 5f 69 72 65 67 73 20 72 31 20 20 20 20 ..........>>>.match_iregs.r1....
103c0 72 53 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3e 3e 3e 20 6d 61 74 63 68 5f 69 72 65 67 73 rS...............>>>.match_iregs
103e0 20 72 32 20 20 20 20 72 42 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3e 3e 3e 20 6d 61 74 63 .r2....rB...............>>>.matc
10400 68 5f 62 6f 6f 6c 73 20 66 61 6c 73 65 20 72 63 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3e h_bools.false.rc...............>
10420 3e 3e 20 72 65 63 75 72 5f 73 69 6d 70 6c 0a 20 20 20 20 20 20 20 20 20 20 7c 20 5f 20 2d 3e 20 >>.recur_simpl...........|._.->.
10440 65 72 72 6f 72 0a 20 20 20 20 20 20 20 20 20 20 65 6e 64 0a 20 20 20 20 20 20 7c 20 50 6f 72 63 error...........end.......|.Porc
10460 28 72 64 2c 20 72 31 2c 20 72 32 29 20 2d 3e 0a 20 20 20 20 20 20 20 20 20 20 62 65 67 69 6e 20 (rd,.r1,.r2).->...........begin.
10480 6d 61 74 63 68 20 65 63 6f 64 65 20 77 69 74 68 0a 20 20 20 20 20 20 20 20 20 20 7c 20 4f 52 43 match.ecode.with...........|.ORC
104a0 78 28 72 53 2c 20 72 41 2c 20 72 42 2c 20 72 63 29 20 3a 3a 20 65 73 20 2d 3e 0a 20 20 20 20 20 x(rS,.rA,.rB,.rc).::.es.->......
104c0 20 20 20 20 20 20 20 20 20 66 77 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3e 3e 3e 20 6d 61 .........fw...............>>>.ma
104e0 74 63 68 5f 69 72 65 67 73 20 72 64 20 20 20 20 72 41 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 tch_iregs.rd....rA..............
10500 20 3e 3e 3e 20 6d 61 74 63 68 5f 69 72 65 67 73 20 72 31 20 20 20 20 72 53 0a 20 20 20 20 20 20 .>>>.match_iregs.r1....rS.......
10520 20 20 20 20 20 20 20 20 3e 3e 3e 20 6d 61 74 63 68 5f 69 72 65 67 73 20 72 32 20 20 20 20 72 42 ........>>>.match_iregs.r2....rB
10540 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3e 3e 3e 20 6d 61 74 63 68 5f 62 6f 6f 6c 73 20 66 ...............>>>.match_bools.f
10560 61 6c 73 65 20 72 63 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3e 3e 3e 20 72 65 63 75 72 5f alse.rc...............>>>.recur_
10580 73 69 6d 70 6c 0a 20 20 20 20 20 20 20 20 20 20 7c 20 5f 20 2d 3e 20 65 72 72 6f 72 0a 20 20 20 simpl...........|._.->.error....
105a0 20 20 20 20 20 20 20 65 6e 64 0a 20 20 20 20 20 20 7c 20 50 6f 72 69 28 72 64 2c 20 72 31 2c 20 .......end.......|.Pori(rd,.r1,.
105c0 63 73 74 29 20 2d 3e 0a 20 20 20 20 20 20 20 20 20 20 62 65 67 69 6e 20 6d 61 74 63 68 20 65 63 cst).->...........begin.match.ec
105e0 6f 64 65 20 77 69 74 68 0a 20 20 20 20 20 20 20 20 20 20 7c 20 4f 52 49 28 72 53 2c 20 72 41 2c ode.with...........|.ORI(rS,.rA,
10600 20 75 69 6d 6d 29 20 3a 3a 20 65 73 20 2d 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 66 77 .uimm).::.es.->...............fw
10620 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3e 3e 3e 20 6d 61 74 63 68 5f 69 72 65 67 73 20 72 ...............>>>.match_iregs.r
10640 64 20 20 72 41 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3e 3e 3e 20 6d 61 74 63 68 5f 69 72 d..rA...............>>>.match_ir
10660 65 67 73 20 72 31 20 20 72 53 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3e 3e 3e 20 6d 61 74 egs.r1..rS...............>>>.mat
10680 63 68 5f 63 73 74 73 20 20 63 73 74 20 28 53 61 66 65 33 32 2e 6f 66 5f 69 6e 74 20 75 69 6d 6d ch_csts..cst.(Safe32.of_int.uimm
106a0 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3e 3e 3e 20 72 65 63 75 72 5f 73 69 6d 70 6c 0a )...............>>>.recur_simpl.
106c0 20 20 20 20 20 20 20 20 20 20 7c 20 5f 20 2d 3e 20 65 72 72 6f 72 0a 20 20 20 20 20 20 20 20 20 ..........|._.->.error..........
106e0 20 65 6e 64 0a 20 20 20 20 20 20 7c 20 50 6f 72 69 73 28 72 64 2c 20 72 31 2c 20 63 73 74 29 20 .end.......|.Poris(rd,.r1,.cst).
10700 2d 3e 0a 20 20 20 20 20 20 20 20 20 20 62 65 67 69 6e 20 6d 61 74 63 68 20 65 63 6f 64 65 20 77 ->...........begin.match.ecode.w
10720 69 74 68 0a 20 20 20 20 20 20 20 20 20 20 7c 20 4f 52 49 53 28 72 53 2c 20 72 41 2c 20 75 69 6d ith...........|.ORIS(rS,.rA,.uim
10740 6d 29 20 3a 3a 20 65 73 20 2d 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 66 77 0a 20 20 20 m).::.es.->...............fw....
10760 20 20 20 20 20 20 20 20 20 20 20 3e 3e 3e 20 6d 61 74 63 68 5f 69 72 65 67 73 20 72 64 20 20 72 ...........>>>.match_iregs.rd..r
10780 41 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3e 3e 3e 20 6d 61 74 63 68 5f 69 72 65 67 73 20 A...............>>>.match_iregs.
107a0 72 31 20 20 72 53 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3e 3e 3e 20 6d 61 74 63 68 5f 63 r1..rS...............>>>.match_c
107c0 73 74 73 20 20 63 73 74 20 28 53 61 66 65 33 32 2e 6f 66 5f 69 6e 74 20 75 69 6d 6d 29 0a 20 20 sts..cst.(Safe32.of_int.uimm)...
107e0 20 20 20 20 20 20 20 20 20 20 20 20 3e 3e 3e 20 72 65 63 75 72 5f 73 69 6d 70 6c 0a 20 20 20 20 ............>>>.recur_simpl.....
10800 20 20 20 20 20 20 7c 20 5f 20 2d 3e 20 65 72 72 6f 72 0a 20 20 20 20 20 20 20 20 20 20 65 6e 64 ......|._.->.error...........end
10820 0a 20 20 20 20 20 20 7c 20 50 72 6c 77 69 6d 69 28 72 64 2c 20 72 31 2c 20 61 6d 6f 75 6e 74 2c .......|.Prlwimi(rd,.r1,.amount,
10840 20 6d 61 73 6b 29 20 2d 3e 0a 20 20 20 20 20 20 20 20 20 20 62 65 67 69 6e 20 6d 61 74 63 68 20 .mask).->...........begin.match.
10860 65 63 6f 64 65 20 77 69 74 68 0a 20 20 20 20 20 20 20 20 20 20 7c 20 52 4c 57 49 4d 49 78 28 72 ecode.with...........|.RLWIMIx(r
10880 53 2c 20 72 41 2c 20 73 68 2c 20 6d 62 2c 20 6d 65 2c 20 72 63 29 20 3a 3a 20 65 73 20 2d 3e 0a S,.rA,.sh,.mb,.me,.rc).::.es.->.
108a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 66 77 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3e ..............fw...............>
108c0 3e 3e 20 6d 61 74 63 68 5f 69 72 65 67 73 20 72 31 20 20 20 20 20 72 53 0a 20 20 20 20 20 20 20 >>.match_iregs.r1.....rS........
108e0 20 20 20 20 20 20 20 3e 3e 3e 20 6d 61 74 63 68 5f 69 72 65 67 73 20 72 64 20 20 20 20 20 72 41 .......>>>.match_iregs.rd.....rA
10900 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3e 3e 3e 20 6d 61 74 63 68 5f 7a 5f 69 6e 74 20 61 ...............>>>.match_z_int.a
10920 6d 6f 75 6e 74 20 73 68 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3e 3e 3e 20 6d 61 74 63 68 mount.sh...............>>>.match
10940 5f 6d 61 73 6b 20 20 6d 61 73 6b 20 20 20 28 62 69 74 6d 61 73 6b 20 6d 62 20 6d 65 29 0a 20 20 _mask..mask...(bitmask.mb.me)...
10960 20 20 20 20 20 20 20 20 20 20 20 20 3e 3e 3e 20 6d 61 74 63 68 5f 62 6f 6f 6c 73 20 66 61 6c 73 ............>>>.match_bools.fals
10980 65 20 20 72 63 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3e 3e 3e 20 72 65 63 75 72 5f 73 69 e..rc...............>>>.recur_si
109a0 6d 70 6c 0a 20 20 20 20 20 20 20 20 20 20 7c 20 5f 20 2d 3e 20 65 72 72 6f 72 0a 20 20 20 20 20 mpl...........|._.->.error......
109c0 20 20 20 20 20 65 6e 64 0a 20 20 20 20 20 20 7c 20 50 72 6c 77 69 6e 6d 28 72 64 2c 20 72 31 2c .....end.......|.Prlwinm(rd,.r1,
109e0 20 61 6d 6f 75 6e 74 2c 20 6d 61 73 6b 29 20 2d 3e 0a 20 20 20 20 20 20 20 20 20 20 62 65 67 69 .amount,.mask).->...........begi
10a00 6e 20 6d 61 74 63 68 20 65 63 6f 64 65 20 77 69 74 68 0a 20 20 20 20 20 20 20 20 20 20 7c 20 52 n.match.ecode.with...........|.R
10a20 4c 57 49 4e 4d 78 28 72 53 2c 20 72 41 2c 20 73 68 2c 20 6d 62 2c 20 6d 65 2c 20 72 63 29 20 3a LWINMx(rS,.rA,.sh,.mb,.me,.rc).:
10a40 3a 20 65 73 20 2d 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 66 77 0a 20 20 20 20 20 20 20 :.es.->...............fw........
10a60 20 20 20 20 20 20 20 3e 3e 3e 20 6d 61 74 63 68 5f 69 72 65 67 73 20 72 31 20 20 20 20 20 72 53 .......>>>.match_iregs.r1.....rS
10a80 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3e 3e 3e 20 6d 61 74 63 68 5f 69 72 65 67 73 20 72 ...............>>>.match_iregs.r
10aa0 64 20 20 20 20 20 72 41 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3e 3e 3e 20 6d 61 74 63 68 d.....rA...............>>>.match
10ac0 5f 7a 5f 69 6e 74 20 61 6d 6f 75 6e 74 20 73 68 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3e _z_int.amount.sh...............>
10ae0 3e 3e 20 6d 61 74 63 68 5f 6d 61 73 6b 20 20 6d 61 73 6b 20 20 20 28 62 69 74 6d 61 73 6b 20 6d >>.match_mask..mask...(bitmask.m
10b00 62 20 6d 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3e 3e 3e 20 6d 61 74 63 68 5f 62 6f b.me)...............>>>.match_bo
10b20 6f 6c 73 20 66 61 6c 73 65 20 20 72 63 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3e 3e 3e 20 ols.false..rc...............>>>.
10b40 72 65 63 75 72 5f 73 69 6d 70 6c 0a 20 20 20 20 20 20 20 20 20 20 7c 20 5f 20 2d 3e 20 65 72 72 recur_simpl...........|._.->.err
10b60 6f 72 0a 20 20 20 20 20 20 20 20 20 20 65 6e 64 0a 20 20 20 20 20 20 7c 20 50 73 6c 77 28 72 64 or...........end.......|.Pslw(rd
10b80 2c 20 72 31 2c 20 72 32 29 20 2d 3e 0a 20 20 20 20 20 20 20 20 20 20 62 65 67 69 6e 20 6d 61 74 ,.r1,.r2).->...........begin.mat
10ba0 63 68 20 65 63 6f 64 65 20 77 69 74 68 0a 20 20 20 20 20 20 20 20 20 20 7c 20 53 4c 57 78 28 72 ch.ecode.with...........|.SLWx(r
10bc0 53 2c 20 72 41 2c 20 72 42 2c 20 72 63 29 20 3a 3a 20 65 73 20 2d 3e 0a 20 20 20 20 20 20 20 20 S,.rA,.rB,.rc).::.es.->.........
10be0 20 20 20 20 20 20 66 77 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3e 3e 3e 20 6d 61 74 63 68 ......fw...............>>>.match
10c00 5f 69 72 65 67 73 20 72 64 20 20 20 20 72 41 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3e 3e _iregs.rd....rA...............>>
10c20 3e 20 6d 61 74 63 68 5f 69 72 65 67 73 20 72 31 20 20 20 20 72 53 0a 20 20 20 20 20 20 20 20 20 >.match_iregs.r1....rS..........
10c40 20 20 20 20 20 3e 3e 3e 20 6d 61 74 63 68 5f 69 72 65 67 73 20 72 32 20 20 20 20 72 42 0a 20 20 .....>>>.match_iregs.r2....rB...
10c60 20 20 20 20 20 20 20 20 20 20 20 20 3e 3e 3e 20 6d 61 74 63 68 5f 62 6f 6f 6c 73 20 66 61 6c 73 ............>>>.match_bools.fals
10c80 65 20 72 63 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3e 3e 3e 20 72 65 63 75 72 5f 73 69 6d e.rc...............>>>.recur_sim
10ca0 70 6c 0a 20 20 20 20 20 20 20 20 20 20 7c 20 5f 20 2d 3e 20 65 72 72 6f 72 0a 20 20 20 20 20 20 pl...........|._.->.error.......
10cc0 20 20 20 20 65 6e 64 0a 20 20 20 20 20 20 7c 20 50 73 72 61 77 28 72 64 2c 20 72 31 2c 20 72 32 ....end.......|.Psraw(rd,.r1,.r2
10ce0 29 20 2d 3e 0a 20 20 20 20 20 20 20 20 20 20 62 65 67 69 6e 20 6d 61 74 63 68 20 65 63 6f 64 65 ).->...........begin.match.ecode
10d00 20 77 69 74 68 0a 20 20 20 20 20 20 20 20 20 20 7c 20 53 52 41 57 78 28 72 53 2c 20 72 41 2c 20 .with...........|.SRAWx(rS,.rA,.
10d20 72 42 2c 20 72 63 29 20 3a 3a 20 65 73 20 2d 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 66 rB,.rc).::.es.->...............f
10d40 77 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3e 3e 3e 20 6d 61 74 63 68 5f 69 72 65 67 73 20 w...............>>>.match_iregs.
10d60 72 64 20 20 20 20 72 41 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3e 3e 3e 20 6d 61 74 63 68 rd....rA...............>>>.match
10d80 5f 69 72 65 67 73 20 72 31 20 20 20 20 72 53 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3e 3e _iregs.r1....rS...............>>
10da0 3e 20 6d 61 74 63 68 5f 69 72 65 67 73 20 72 32 20 20 20 20 72 42 0a 20 20 20 20 20 20 20 20 20 >.match_iregs.r2....rB..........
10dc0 20 20 20 20 20 3e 3e 3e 20 6d 61 74 63 68 5f 62 6f 6f 6c 73 20 66 61 6c 73 65 20 72 63 0a 20 20 .....>>>.match_bools.false.rc...
10de0 20 20 20 20 20 20 20 20 20 20 20 20 3e 3e 3e 20 72 65 63 75 72 5f 73 69 6d 70 6c 0a 20 20 20 20 ............>>>.recur_simpl.....
10e00 20 20 20 20 20 20 7c 20 5f 20 2d 3e 20 65 72 72 6f 72 0a 20 20 20 20 20 20 20 20 20 20 65 6e 64 ......|._.->.error...........end
10e20 0a 20 20 20 20 20 20 7c 20 50 73 72 61 77 69 28 72 64 2c 20 72 31 2c 20 6e 29 20 2d 3e 0a 20 20 .......|.Psrawi(rd,.r1,.n).->...
10e40 20 20 20 20 20 20 20 20 62 65 67 69 6e 20 6d 61 74 63 68 20 65 63 6f 64 65 20 77 69 74 68 0a 20 ........begin.match.ecode.with..
10e60 20 20 20 20 20 20 20 20 20 7c 20 53 52 41 57 49 78 28 72 53 2c 20 72 41 2c 20 73 68 2c 20 72 63 .........|.SRAWIx(rS,.rA,.sh,.rc
10e80 29 20 3a 3a 20 65 73 20 2d 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 66 77 0a 20 20 20 20 ).::.es.->...............fw.....
10ea0 20 20 20 20 20 20 20 20 20 20 3e 3e 3e 20 6d 61 74 63 68 5f 69 72 65 67 73 20 72 64 20 20 20 20 ..........>>>.match_iregs.rd....
10ec0 72 41 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3e 3e 3e 20 6d 61 74 63 68 5f 69 72 65 67 73 rA...............>>>.match_iregs
10ee0 20 72 31 20 20 20 20 72 53 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3e 3e 3e 20 6d 61 74 63 .r1....rS...............>>>.matc
10f00 68 5f 7a 5f 69 6e 74 20 6e 20 20 20 20 20 73 68 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3e h_z_int.n.....sh...............>
10f20 3e 3e 20 6d 61 74 63 68 5f 62 6f 6f 6c 73 20 66 61 6c 73 65 20 72 63 0a 20 20 20 20 20 20 20 20 >>.match_bools.false.rc.........
10f40 20 20 20 20 20 20 3e 3e 3e 20 72 65 63 75 72 5f 73 69 6d 70 6c 0a 20 20 20 20 20 20 20 20 20 20 ......>>>.recur_simpl...........
10f60 7c 20 5f 20 2d 3e 20 65 72 72 6f 72 0a 20 20 20 20 20 20 20 20 20 20 65 6e 64 0a 20 20 20 20 20 |._.->.error...........end......
10f80 20 7c 20 50 73 72 77 28 72 64 2c 20 72 31 2c 20 72 32 29 20 2d 3e 0a 20 20 20 20 20 20 20 20 20 .|.Psrw(rd,.r1,.r2).->..........
10fa0 20 62 65 67 69 6e 20 6d 61 74 63 68 20 65 63 6f 64 65 20 77 69 74 68 0a 20 20 20 20 20 20 20 20 .begin.match.ecode.with.........
10fc0 20 20 7c 20 53 52 57 78 28 72 53 2c 20 72 41 2c 20 72 42 2c 20 72 63 29 20 3a 3a 20 65 73 20 2d ..|.SRWx(rS,.rA,.rB,.rc).::.es.-
10fe0 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 66 77 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 >...............fw..............
11000 20 3e 3e 3e 20 6d 61 74 63 68 5f 69 72 65 67 73 20 72 64 20 20 20 20 72 41 0a 20 20 20 20 20 20 .>>>.match_iregs.rd....rA.......
11020 20 20 20 20 20 20 20 20 3e 3e 3e 20 6d 61 74 63 68 5f 69 72 65 67 73 20 72 31 20 20 20 20 72 53 ........>>>.match_iregs.r1....rS
11040 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3e 3e 3e 20 6d 61 74 63 68 5f 69 72 65 67 73 20 72 ...............>>>.match_iregs.r
11060 32 20 20 20 20 72 42 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3e 3e 3e 20 6d 61 74 63 68 5f 2....rB...............>>>.match_
11080 62 6f 6f 6c 73 20 66 61 6c 73 65 20 72 63 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3e 3e 3e bools.false.rc...............>>>
110a0 20 72 65 63 75 72 5f 73 69 6d 70 6c 0a 20 20 20 20 20 20 20 20 20 20 7c 20 5f 20 2d 3e 20 65 72 .recur_simpl...........|._.->.er
110c0 72 6f 72 0a 20 20 20 20 20 20 20 20 20 20 65 6e 64 0a 20 20 20 20 20 20 7c 20 50 73 74 62 28 72 ror...........end.......|.Pstb(r
110e0 64 2c 20 63 73 74 2c 20 72 31 29 20 2d 3e 0a 20 20 20 20 20 20 20 20 20 20 62 65 67 69 6e 20 6d d,.cst,.r1).->...........begin.m
11100 61 74 63 68 20 65 63 6f 64 65 20 77 69 74 68 0a 20 20 20 20 20 20 20 20 20 20 7c 20 53 54 42 28 atch.ecode.with...........|.STB(
11120 72 53 2c 20 72 41 2c 20 64 29 20 3a 3a 20 65 73 20 2d 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 rS,.rA,.d).::.es.->.............
11140 20 20 66 77 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3e 3e 3e 20 6d 61 74 63 68 5f 69 72 65 ..fw...............>>>.match_ire
11160 67 73 20 72 64 20 20 72 53 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3e 3e 3e 20 6d 61 74 63 gs.rd..rS...............>>>.matc
11180 68 5f 69 72 65 67 73 20 72 31 20 20 72 41 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3e 3e 3e h_iregs.r1..rA...............>>>
111a0 20 6d 61 74 63 68 5f 63 73 74 73 20 20 63 73 74 20 28 65 78 74 73 20 64 29 0a 20 20 20 20 20 20 .match_csts..cst.(exts.d).......
111c0 20 20 20 20 20 20 20 20 3e 3e 3e 20 72 65 63 75 72 5f 73 69 6d 70 6c 0a 20 20 20 20 20 20 20 20 ........>>>.recur_simpl.........
111e0 20 20 7c 20 5f 20 2d 3e 20 65 72 72 6f 72 0a 20 20 20 20 20 20 20 20 20 20 65 6e 64 0a 20 20 20 ..|._.->.error...........end....
11200 20 20 20 7c 20 50 73 74 62 78 28 72 64 2c 20 72 31 2c 20 72 32 29 20 2d 3e 0a 20 20 20 20 20 20 ...|.Pstbx(rd,.r1,.r2).->.......
11220 20 20 20 20 62 65 67 69 6e 20 6d 61 74 63 68 20 65 63 6f 64 65 20 77 69 74 68 0a 20 20 20 20 20 ....begin.match.ecode.with......
11240 20 20 20 20 20 7c 20 53 54 42 58 28 72 53 2c 20 72 41 2c 20 72 42 29 20 3a 3a 20 65 73 20 2d 3e .....|.STBX(rS,.rA,.rB).::.es.->
11260 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 66 77 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ...............fw...............
11280 3e 3e 3e 20 6d 61 74 63 68 5f 69 72 65 67 73 20 72 64 20 72 53 0a 20 20 20 20 20 20 20 20 20 20 >>>.match_iregs.rd.rS...........
112a0 20 20 20 20 3e 3e 3e 20 6d 61 74 63 68 5f 69 72 65 67 73 20 72 31 20 72 41 0a 20 20 20 20 20 20 ....>>>.match_iregs.r1.rA.......
112c0 20 20 20 20 20 20 20 20 3e 3e 3e 20 6d 61 74 63 68 5f 69 72 65 67 73 20 72 32 20 72 42 0a 20 20 ........>>>.match_iregs.r2.rB...
112e0 20 20 20 20 20 20 20 20 20 20 20 20 3e 3e 3e 20 72 65 63 75 72 5f 73 69 6d 70 6c 0a 20 20 20 20 ............>>>.recur_simpl.....
11300 20 20 20 20 20 20 7c 20 5f 20 2d 3e 20 65 72 72 6f 72 0a 20 20 20 20 20 20 20 20 20 20 65 6e 64 ......|._.->.error...........end
11320 0a 20 20 20 20 20 20 7c 20 50 73 74 66 64 28 72 64 2c 20 63 73 74 2c 20 72 31 29 20 2d 3e 0a 20 .......|.Pstfd(rd,.cst,.r1).->..
11340 20 20 20 20 20 20 20 20 20 62 65 67 69 6e 20 6d 61 74 63 68 20 65 63 6f 64 65 20 77 69 74 68 0a .........begin.match.ecode.with.
11360 20 20 20 20 20 20 20 20 20 20 7c 20 53 54 46 44 28 66 72 53 2c 20 72 41 2c 20 64 29 20 3a 3a 20 ..........|.STFD(frS,.rA,.d).::.
11380 65 73 20 2d 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 66 77 0a 20 20 20 20 20 20 20 20 20 es.->...............fw..........
113a0 20 20 20 20 20 3e 3e 3e 20 6d 61 74 63 68 5f 66 72 65 67 73 20 72 64 20 20 66 72 53 0a 20 20 20 .....>>>.match_fregs.rd..frS....
113c0 20 20 20 20 20 20 20 20 20 20 20 3e 3e 3e 20 6d 61 74 63 68 5f 69 72 65 67 73 20 72 31 20 20 72 ...........>>>.match_iregs.r1..r
113e0 41 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3e 3e 3e 20 6d 61 74 63 68 5f 63 73 74 73 20 20 A...............>>>.match_csts..
11400 63 73 74 20 28 65 78 74 73 20 64 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3e 3e 3e 20 72 cst.(exts.d)...............>>>.r
11420 65 63 75 72 5f 73 69 6d 70 6c 0a 20 20 20 20 20 20 20 20 20 20 7c 20 5f 20 2d 3e 20 65 72 72 6f ecur_simpl...........|._.->.erro
11440 72 0a 20 20 20 20 20 20 20 20 20 20 65 6e 64 0a 20 20 20 20 20 20 7c 20 50 73 74 66 64 78 28 72 r...........end.......|.Pstfdx(r
11460 64 2c 20 72 31 2c 20 72 32 29 20 2d 3e 0a 20 20 20 20 20 20 20 20 20 20 62 65 67 69 6e 20 6d 61 d,.r1,.r2).->...........begin.ma
11480 74 63 68 20 65 63 6f 64 65 20 77 69 74 68 0a 20 20 20 20 20 20 20 20 20 20 7c 20 53 54 46 44 58 tch.ecode.with...........|.STFDX
114a0 28 66 72 53 2c 20 72 41 2c 20 72 42 29 20 3a 3a 20 65 73 20 2d 3e 0a 20 20 20 20 20 20 20 20 20 (frS,.rA,.rB).::.es.->..........
114c0 20 20 20 20 20 66 77 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3e 3e 3e 20 6d 61 74 63 68 5f .....fw...............>>>.match_
114e0 66 72 65 67 73 20 72 64 20 66 72 53 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3e 3e 3e 20 6d fregs.rd.frS...............>>>.m
11500 61 74 63 68 5f 69 72 65 67 73 20 72 31 20 72 41 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3e atch_iregs.r1.rA...............>
11520 3e 3e 20 6d 61 74 63 68 5f 69 72 65 67 73 20 72 32 20 72 42 0a 20 20 20 20 20 20 20 20 20 20 20 >>.match_iregs.r2.rB............
11540 20 20 20 3e 3e 3e 20 72 65 63 75 72 5f 73 69 6d 70 6c 0a 20 20 20 20 20 20 20 20 20 20 7c 20 5f ...>>>.recur_simpl...........|._
11560 20 2d 3e 20 65 72 72 6f 72 0a 20 20 20 20 20 20 20 20 20 20 65 6e 64 0a 20 20 20 20 20 20 7c 20 .->.error...........end.......|.
11580 50 73 74 66 73 28 72 64 2c 20 63 73 74 2c 20 72 31 29 20 2d 3e 0a 20 20 20 20 20 20 20 20 20 20 Pstfs(rd,.cst,.r1).->...........
115a0 62 65 67 69 6e 20 6d 61 74 63 68 20 65 63 6f 64 65 20 77 69 74 68 0a 20 20 20 20 20 20 20 20 20 begin.match.ecode.with..........
115c0 20 7c 20 20 20 46 52 53 50 78 28 66 72 44 30 2c 20 66 72 42 30 2c 20 72 63 30 29 20 3a 3a 0a 20 .|...FRSPx(frD0,.frB0,.rc0).::..
115e0 20 20 20 20 20 20 20 20 20 20 20 20 20 53 54 46 53 20 28 66 72 53 31 2c 20 72 41 31 2c 20 20 64 .............STFS.(frS1,.rA1,..d
11600 31 29 20 20 3a 3a 20 65 73 20 2d 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 66 77 0a 20 20 1)..::.es.->...............fw...
11620 20 20 20 20 20 20 20 20 20 20 20 20 3e 3e 3e 20 6d 61 74 63 68 5f 66 72 65 67 73 20 46 50 52 31 ............>>>.match_fregs.FPR1
11640 33 20 66 72 44 30 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3e 3e 3e 20 6d 61 74 63 68 5f 66 3.frD0...............>>>.match_f
11660 72 65 67 73 20 72 64 20 20 20 20 66 72 42 30 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3e 3e regs.rd....frB0...............>>
11680 3e 20 6d 61 74 63 68 5f 62 6f 6f 6c 73 20 66 61 6c 73 65 20 72 63 30 0a 20 20 20 20 20 20 20 20 >.match_bools.false.rc0.........
116a0 20 20 20 20 20 20 3e 3e 3e 20 6d 61 74 63 68 5f 66 72 65 67 73 20 46 50 52 31 33 20 66 72 53 31 ......>>>.match_fregs.FPR13.frS1
116c0 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3e 3e 3e 20 6d 61 74 63 68 5f 69 72 65 67 73 20 72 ...............>>>.match_iregs.r
116e0 31 20 20 20 20 72 41 31 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3e 3e 3e 20 6d 61 74 63 68 1....rA1...............>>>.match
11700 5f 63 73 74 73 20 20 63 73 74 20 28 65 78 74 73 20 64 31 29 0a 20 20 20 20 20 20 20 20 20 20 20 _csts..cst.(exts.d1)............
11720 20 20 20 3e 3e 3e 20 63 6f 6d 70 61 72 65 5f 63 6f 64 65 20 63 73 20 65 73 20 28 49 6e 74 33 32 ...>>>.compare_code.cs.es.(Int32
11740 2e 61 64 64 20 38 6c 20 70 63 29 0a 20 20 20 20 20 20 20 20 20 20 7c 20 5f 20 2d 3e 20 65 72 72 .add.8l.pc)...........|._.->.err
11760 6f 72 0a 20 20 20 20 20 20 20 20 20 20 65 6e 64 0a 20 20 20 20 20 20 7c 20 50 73 74 66 73 78 28 or...........end.......|.Pstfsx(
11780 72 64 2c 20 72 31 2c 20 72 32 29 20 2d 3e 0a 20 20 20 20 20 20 20 20 20 20 62 65 67 69 6e 20 6d rd,.r1,.r2).->...........begin.m
117a0 61 74 63 68 20 65 63 6f 64 65 20 77 69 74 68 0a 20 20 20 20 20 20 20 20 20 20 7c 20 20 20 46 52 atch.ecode.with...........|...FR
117c0 53 50 78 28 66 72 44 30 2c 20 66 72 42 30 2c 20 72 63 30 29 20 3a 3a 0a 20 20 20 20 20 20 20 20 SPx(frD0,.frB0,.rc0).::.........
117e0 20 20 20 20 20 20 53 54 46 53 58 28 66 72 53 31 2c 20 72 41 31 2c 20 20 72 42 31 29 20 3a 3a 20 ......STFSX(frS1,.rA1,..rB1).::.
11800 65 73 20 2d 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 66 77 0a 20 20 20 20 20 20 20 20 20 es.->...............fw..........
11820 20 20 20 20 20 3e 3e 3e 20 6d 61 74 63 68 5f 66 72 65 67 73 20 46 50 52 31 33 20 66 72 44 30 0a .....>>>.match_fregs.FPR13.frD0.
11840 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3e 3e 3e 20 6d 61 74 63 68 5f 66 72 65 67 73 20 72 64 ..............>>>.match_fregs.rd
11860 20 20 20 20 66 72 42 30 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3e 3e 3e 20 6d 61 74 63 68 ....frB0...............>>>.match
11880 5f 62 6f 6f 6c 73 20 66 61 6c 73 65 20 72 63 30 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3e _bools.false.rc0...............>
118a0 3e 3e 20 6d 61 74 63 68 5f 66 72 65 67 73 20 46 50 52 31 33 20 66 72 53 31 0a 20 20 20 20 20 20 >>.match_fregs.FPR13.frS1.......
118c0 20 20 20 20 20 20 20 20 3e 3e 3e 20 6d 61 74 63 68 5f 69 72 65 67 73 20 72 31 20 20 20 20 72 41 ........>>>.match_iregs.r1....rA
118e0 31 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3e 3e 3e 20 6d 61 74 63 68 5f 69 72 65 67 73 20 1...............>>>.match_iregs.
11900 72 32 20 20 20 20 72 42 31 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3e 3e 3e 20 63 6f 6d 70 r2....rB1...............>>>.comp
11920 61 72 65 5f 63 6f 64 65 20 63 73 20 65 73 20 28 49 6e 74 33 32 2e 61 64 64 20 38 6c 20 70 63 29 are_code.cs.es.(Int32.add.8l.pc)
11940 0a 20 20 20 20 20 20 20 20 20 20 7c 20 5f 20 2d 3e 20 65 72 72 6f 72 0a 20 20 20 20 20 20 20 20 ...........|._.->.error.........
11960 20 20 65 6e 64 0a 20 20 20 20 20 20 7c 20 50 73 74 68 28 72 64 2c 20 63 73 74 2c 20 72 31 29 20 ..end.......|.Psth(rd,.cst,.r1).
11980 2d 3e 0a 20 20 20 20 20 20 20 20 20 20 62 65 67 69 6e 20 6d 61 74 63 68 20 65 63 6f 64 65 20 77 ->...........begin.match.ecode.w
119a0 69 74 68 0a 20 20 20 20 20 20 20 20 20 20 7c 20 53 54 48 28 72 53 2c 20 72 41 2c 20 64 29 20 3a ith...........|.STH(rS,.rA,.d).:
119c0 3a 20 65 73 20 2d 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 66 77 0a 20 20 20 20 20 20 20 :.es.->...............fw........
119e0 20 20 20 20 20 20 20 3e 3e 3e 20 6d 61 74 63 68 5f 69 72 65 67 73 20 72 64 20 20 72 53 0a 20 20 .......>>>.match_iregs.rd..rS...
11a00 20 20 20 20 20 20 20 20 20 20 20 20 3e 3e 3e 20 6d 61 74 63 68 5f 69 72 65 67 73 20 72 31 20 20 ............>>>.match_iregs.r1..
11a20 72 41 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3e 3e 3e 20 6d 61 74 63 68 5f 63 73 74 73 20 rA...............>>>.match_csts.
11a40 20 63 73 74 20 28 65 78 74 73 20 64 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3e 3e 3e 20 .cst.(exts.d)...............>>>.
11a60 72 65 63 75 72 5f 73 69 6d 70 6c 0a 20 20 20 20 20 20 20 20 20 20 7c 20 5f 20 2d 3e 20 65 72 72 recur_simpl...........|._.->.err
11a80 6f 72 0a 20 20 20 20 20 20 20 20 20 20 65 6e 64 0a 20 20 20 20 20 20 7c 20 50 73 74 68 78 28 72 or...........end.......|.Psthx(r
11aa0 64 2c 20 72 31 2c 20 72 32 29 20 2d 3e 0a 20 20 20 20 20 20 20 20 20 20 62 65 67 69 6e 20 6d 61 d,.r1,.r2).->...........begin.ma
11ac0 74 63 68 20 65 63 6f 64 65 20 77 69 74 68 0a 20 20 20 20 20 20 20 20 20 20 7c 20 53 54 48 58 28 tch.ecode.with...........|.STHX(
11ae0 72 53 2c 20 72 41 2c 20 72 42 29 20 3a 3a 20 65 73 20 2d 3e 0a 20 20 20 20 20 20 20 20 20 20 20 rS,.rA,.rB).::.es.->............
11b00 20 20 20 66 77 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3e 3e 3e 20 6d 61 74 63 68 5f 69 72 ...fw...............>>>.match_ir
11b20 65 67 73 20 72 64 20 72 53 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3e 3e 3e 20 6d 61 74 63 egs.rd.rS...............>>>.matc
11b40 68 5f 69 72 65 67 73 20 72 31 20 72 41 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3e 3e 3e 20 h_iregs.r1.rA...............>>>.
11b60 6d 61 74 63 68 5f 69 72 65 67 73 20 72 32 20 72 42 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 match_iregs.r2.rB...............
11b80 3e 3e 3e 20 72 65 63 75 72 5f 73 69 6d 70 6c 0a 20 20 20 20 20 20 20 20 20 20 7c 20 5f 20 2d 3e >>>.recur_simpl...........|._.->
11ba0 20 65 72 72 6f 72 0a 20 20 20 20 20 20 20 20 20 20 65 6e 64 0a 20 20 20 20 20 20 7c 20 50 73 74 .error...........end.......|.Pst
11bc0 77 28 72 64 2c 20 63 73 74 2c 20 72 31 29 20 2d 3e 0a 20 20 20 20 20 20 20 20 20 20 62 65 67 69 w(rd,.cst,.r1).->...........begi
11be0 6e 20 6d 61 74 63 68 20 65 63 6f 64 65 20 77 69 74 68 0a 20 20 20 20 20 20 20 20 20 20 7c 20 53 n.match.ecode.with...........|.S
11c00 54 57 28 72 53 2c 20 72 41 2c 20 64 29 20 3a 3a 20 65 73 20 2d 3e 0a 20 20 20 20 20 20 20 20 20 TW(rS,.rA,.d).::.es.->..........
11c20 20 20 20 20 20 66 77 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3e 3e 3e 20 6d 61 74 63 68 5f .....fw...............>>>.match_
11c40 69 72 65 67 73 20 72 64 20 20 72 53 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3e 3e 3e 20 6d iregs.rd..rS...............>>>.m
11c60 61 74 63 68 5f 69 72 65 67 73 20 72 31 20 20 72 41 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 atch_iregs.r1..rA...............
11c80 3e 3e 3e 20 6d 61 74 63 68 5f 63 73 74 73 20 20 63 73 74 20 28 65 78 74 73 20 64 29 0a 20 20 20 >>>.match_csts..cst.(exts.d)....
11ca0 20 20 20 20 20 20 20 20 20 20 20 3e 3e 3e 20 72 65 63 75 72 5f 73 69 6d 70 6c 0a 20 20 20 20 20 ...........>>>.recur_simpl......
11cc0 20 20 20 20 20 7c 20 5f 20 2d 3e 20 65 72 72 6f 72 0a 20 20 20 20 20 20 20 20 20 20 65 6e 64 0a .....|._.->.error...........end.
11ce0 20 20 20 20 20 20 7c 20 50 73 74 77 78 28 72 64 2c 20 72 31 2c 20 72 32 29 20 2d 3e 0a 20 20 20 ......|.Pstwx(rd,.r1,.r2).->....
11d00 20 20 20 20 20 20 20 62 65 67 69 6e 20 6d 61 74 63 68 20 65 63 6f 64 65 20 77 69 74 68 0a 20 20 .......begin.match.ecode.with...
11d20 20 20 20 20 20 20 20 20 7c 20 53 54 57 58 28 72 53 2c 20 72 41 2c 20 72 42 29 20 3a 3a 20 65 73 ........|.STWX(rS,.rA,.rB).::.es
11d40 20 2d 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 66 77 0a 20 20 20 20 20 20 20 20 20 20 20 .->...............fw............
11d60 20 20 20 3e 3e 3e 20 6d 61 74 63 68 5f 69 72 65 67 73 20 72 64 20 72 53 0a 20 20 20 20 20 20 20 ...>>>.match_iregs.rd.rS........
11d80 20 20 20 20 20 20 20 3e 3e 3e 20 6d 61 74 63 68 5f 69 72 65 67 73 20 72 31 20 72 41 0a 20 20 20 .......>>>.match_iregs.r1.rA....
11da0 20 20 20 20 20 20 20 20 20 20 20 3e 3e 3e 20 6d 61 74 63 68 5f 69 72 65 67 73 20 72 32 20 72 42 ...........>>>.match_iregs.r2.rB
11dc0 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3e 3e 3e 20 72 65 63 75 72 5f 73 69 6d 70 6c 0a 20 ...............>>>.recur_simpl..
11de0 20 20 20 20 20 20 20 20 20 7c 20 5f 20 2d 3e 20 65 72 72 6f 72 0a 20 20 20 20 20 20 20 20 20 20 .........|._.->.error...........
11e00 65 6e 64 0a 20 20 20 20 20 20 7c 20 50 73 75 62 66 63 28 72 64 2c 20 72 31 2c 20 72 32 29 20 2d end.......|.Psubfc(rd,.r1,.r2).-
11e20 3e 0a 20 20 20 20 20 20 20 20 20 20 62 65 67 69 6e 20 6d 61 74 63 68 20 65 63 6f 64 65 20 77 69 >...........begin.match.ecode.wi
11e40 74 68 0a 20 20 20 20 20 20 20 20 20 20 7c 20 53 55 42 46 43 78 28 72 44 2c 20 72 41 2c 20 72 42 th...........|.SUBFCx(rD,.rA,.rB
11e60 2c 20 6f 65 2c 20 72 63 29 20 3a 3a 20 65 73 20 2d 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 ,.oe,.rc).::.es.->..............
11e80 20 66 77 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3e 3e 3e 20 6d 61 74 63 68 5f 69 72 65 67 .fw...............>>>.match_ireg
11ea0 73 20 72 64 20 20 20 20 72 44 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3e 3e 3e 20 6d 61 74 s.rd....rD...............>>>.mat
11ec0 63 68 5f 69 72 65 67 73 20 72 31 20 20 20 20 72 41 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ch_iregs.r1....rA...............
11ee0 3e 3e 3e 20 6d 61 74 63 68 5f 69 72 65 67 73 20 72 32 20 20 20 20 72 42 0a 20 20 20 20 20 20 20 >>>.match_iregs.r2....rB........
11f00 20 20 20 20 20 20 20 3e 3e 3e 20 6d 61 74 63 68 5f 62 6f 6f 6c 73 20 66 61 6c 73 65 20 6f 65 0a .......>>>.match_bools.false.oe.
11f20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3e 3e 3e 20 6d 61 74 63 68 5f 62 6f 6f 6c 73 20 66 61 ..............>>>.match_bools.fa
11f40 6c 73 65 20 72 63 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3e 3e 3e 20 72 65 63 75 72 5f 73 lse.rc...............>>>.recur_s
11f60 69 6d 70 6c 0a 20 20 20 20 20 20 20 20 20 20 7c 20 5f 20 2d 3e 20 65 72 72 6f 72 0a 20 20 20 20 impl...........|._.->.error.....
11f80 20 20 20 20 20 20 65 6e 64 0a 20 20 20 20 20 20 7c 20 50 73 75 62 66 65 28 72 64 2c 20 72 31 2c ......end.......|.Psubfe(rd,.r1,
11fa0 20 72 32 29 20 2d 3e 0a 20 20 20 20 20 20 20 20 20 20 62 65 67 69 6e 20 6d 61 74 63 68 20 65 63 .r2).->...........begin.match.ec
11fc0 6f 64 65 20 77 69 74 68 0a 20 20 20 20 20 20 20 20 20 20 7c 20 53 55 42 46 45 78 28 72 44 2c 20 ode.with...........|.SUBFEx(rD,.
11fe0 72 41 2c 20 72 42 2c 20 6f 65 2c 20 72 63 29 20 3a 3a 20 65 73 20 2d 3e 0a 20 20 20 20 20 20 20 rA,.rB,.oe,.rc).::.es.->........
12000 20 20 20 20 20 20 20 66 77 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3e 3e 3e 20 6d 61 74 63 .......fw...............>>>.matc
12020 68 5f 69 72 65 67 73 20 72 64 20 20 20 20 72 44 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3e h_iregs.rd....rD...............>
12040 3e 3e 20 6d 61 74 63 68 5f 69 72 65 67 73 20 72 31 20 20 20 20 72 41 0a 20 20 20 20 20 20 20 20 >>.match_iregs.r1....rA.........
12060 20 20 20 20 20 20 3e 3e 3e 20 6d 61 74 63 68 5f 69 72 65 67 73 20 72 32 20 20 20 20 72 42 0a 20 ......>>>.match_iregs.r2....rB..
12080 20 20 20 20 20 20 20 20 20 20 20 20 20 3e 3e 3e 20 6d 61 74 63 68 5f 62 6f 6f 6c 73 20 66 61 6c .............>>>.match_bools.fal
120a0 73 65 20 6f 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3e 3e 3e 20 6d 61 74 63 68 5f 62 6f se.oe...............>>>.match_bo
120c0 6f 6c 73 20 66 61 6c 73 65 20 72 63 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3e 3e 3e 20 72 ols.false.rc...............>>>.r
120e0 65 63 75 72 5f 73 69 6d 70 6c 0a 20 20 20 20 20 20 20 20 20 20 7c 20 5f 20 2d 3e 20 65 72 72 6f ecur_simpl...........|._.->.erro
12100 72 0a 20 20 20 20 20 20 20 20 20 20 65 6e 64 0a 20 20 20 20 20 20 7c 20 50 73 75 62 66 69 63 28 r...........end.......|.Psubfic(
12120 72 64 2c 20 72 31 2c 20 63 73 74 29 20 2d 3e 0a 20 20 20 20 20 20 20 20 20 20 62 65 67 69 6e 20 rd,.r1,.cst).->...........begin.
12140 6d 61 74 63 68 20 65 63 6f 64 65 20 77 69 74 68 0a 20 20 20 20 20 20 20 20 20 20 7c 20 53 55 42 match.ecode.with...........|.SUB
12160 46 49 43 28 72 44 2c 20 72 41 2c 20 73 69 6d 6d 29 20 3a 3a 20 65 73 20 2d 3e 0a 20 20 20 20 20 FIC(rD,.rA,.simm).::.es.->......
12180 20 20 20 20 20 20 20 20 20 66 77 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3e 3e 3e 20 6d 61 .........fw...............>>>.ma
121a0 74 63 68 5f 69 72 65 67 73 20 72 64 20 20 72 44 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3e tch_iregs.rd..rD...............>
121c0 3e 3e 20 6d 61 74 63 68 5f 69 72 65 67 73 20 72 31 20 20 72 41 0a 20 20 20 20 20 20 20 20 20 20 >>.match_iregs.r1..rA...........
121e0 20 20 20 20 3e 3e 3e 20 6d 61 74 63 68 5f 63 73 74 73 20 20 63 73 74 20 28 65 78 74 73 20 73 69 ....>>>.match_csts..cst.(exts.si
12200 6d 6d 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3e 3e 3e 20 72 65 63 75 72 5f 73 69 6d 70 mm)...............>>>.recur_simp
12220 6c 0a 20 20 20 20 20 20 20 20 20 20 7c 20 5f 20 2d 3e 20 65 72 72 6f 72 0a 20 20 20 20 20 20 20 l...........|._.->.error........
12240 20 20 20 65 6e 64 0a 20 20 20 20 20 20 7c 20 50 78 6f 72 28 72 64 2c 20 72 31 2c 20 72 32 29 20 ...end.......|.Pxor(rd,.r1,.r2).
12260 2d 3e 0a 20 20 20 20 20 20 20 20 20 20 62 65 67 69 6e 20 6d 61 74 63 68 20 65 63 6f 64 65 20 77 ->...........begin.match.ecode.w
12280 69 74 68 0a 20 20 20 20 20 20 20 20 20 20 7c 20 58 4f 52 78 28 72 53 2c 20 72 41 2c 20 72 42 2c ith...........|.XORx(rS,.rA,.rB,
122a0 20 72 63 29 20 3a 3a 20 65 73 20 2d 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 66 77 0a 20 .rc).::.es.->...............fw..
122c0 20 20 20 20 20 20 20 20 20 20 20 20 20 3e 3e 3e 20 6d 61 74 63 68 5f 69 72 65 67 73 20 72 64 20 .............>>>.match_iregs.rd.
122e0 20 20 20 72 41 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3e 3e 3e 20 6d 61 74 63 68 5f 69 72 ...rA...............>>>.match_ir
12300 65 67 73 20 72 31 20 20 20 20 72 53 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3e 3e 3e 20 6d egs.r1....rS...............>>>.m
12320 61 74 63 68 5f 69 72 65 67 73 20 72 32 20 20 20 20 72 42 0a 20 20 20 20 20 20 20 20 20 20 20 20 atch_iregs.r2....rB.............
12340 20 20 3e 3e 3e 20 6d 61 74 63 68 5f 62 6f 6f 6c 73 20 66 61 6c 73 65 20 72 63 0a 20 20 20 20 20 ..>>>.match_bools.false.rc......
12360 20 20 20 20 20 20 20 20 20 3e 3e 3e 20 72 65 63 75 72 5f 73 69 6d 70 6c 0a 20 20 20 20 20 20 20 .........>>>.recur_simpl........
12380 20 20 20 7c 20 5f 20 2d 3e 20 65 72 72 6f 72 0a 20 20 20 20 20 20 20 20 20 20 65 6e 64 0a 20 20 ...|._.->.error...........end...
123a0 20 20 20 20 7c 20 50 78 6f 72 69 28 72 64 2c 20 72 31 2c 20 63 73 74 29 20 2d 3e 0a 20 20 20 20 ....|.Pxori(rd,.r1,.cst).->.....
123c0 20 20 20 20 20 20 62 65 67 69 6e 20 6d 61 74 63 68 20 65 63 6f 64 65 20 77 69 74 68 0a 20 20 20 ......begin.match.ecode.with....
123e0 20 20 20 20 20 20 20 7c 20 58 4f 52 49 28 72 53 2c 20 72 41 2c 20 75 69 6d 6d 29 20 3a 3a 20 65 .......|.XORI(rS,.rA,.uimm).::.e
12400 73 20 2d 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 66 77 0a 20 20 20 20 20 20 20 20 20 20 s.->...............fw...........
12420 20 20 20 20 3e 3e 3e 20 6d 61 74 63 68 5f 69 72 65 67 73 20 72 64 20 20 72 41 0a 20 20 20 20 20 ....>>>.match_iregs.rd..rA......
12440 20 20 20 20 20 20 20 20 20 3e 3e 3e 20 6d 61 74 63 68 5f 69 72 65 67 73 20 72 31 20 20 72 53 0a .........>>>.match_iregs.r1..rS.
12460 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3e 3e 3e 20 6d 61 74 63 68 5f 63 73 74 73 20 20 63 73 ..............>>>.match_csts..cs
12480 74 20 28 53 61 66 65 33 32 2e 6f 66 5f 69 6e 74 20 75 69 6d 6d 29 0a 20 20 20 20 20 20 20 20 20 t.(Safe32.of_int.uimm)..........
124a0 20 20 20 20 20 3e 3e 3e 20 72 65 63 75 72 5f 73 69 6d 70 6c 0a 20 20 20 20 20 20 20 20 20 20 7c .....>>>.recur_simpl...........|
124c0 20 5f 20 2d 3e 20 65 72 72 6f 72 0a 20 20 20 20 20 20 20 20 20 20 65 6e 64 0a 20 20 20 20 20 20 ._.->.error...........end.......
124e0 7c 20 50 78 6f 72 69 73 28 72 64 2c 20 72 31 2c 20 63 73 74 29 20 2d 3e 0a 20 20 20 20 20 20 20 |.Pxoris(rd,.r1,.cst).->........
12500 20 20 20 62 65 67 69 6e 20 6d 61 74 63 68 20 65 63 6f 64 65 20 77 69 74 68 0a 20 20 20 20 20 20 ...begin.match.ecode.with.......
12520 20 20 20 20 7c 20 58 4f 52 49 53 28 72 53 2c 20 72 41 2c 20 75 69 6d 6d 29 20 3a 3a 20 65 73 20 ....|.XORIS(rS,.rA,.uimm).::.es.
12540 2d 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 66 77 0a 20 20 20 20 20 20 20 20 20 20 20 20 ->...............fw.............
12560 20 20 3e 3e 3e 20 6d 61 74 63 68 5f 69 72 65 67 73 20 72 64 20 20 72 41 0a 20 20 20 20 20 20 20 ..>>>.match_iregs.rd..rA........
12580 20 20 20 20 20 20 20 3e 3e 3e 20 6d 61 74 63 68 5f 69 72 65 67 73 20 72 31 20 20 72 53 0a 20 20 .......>>>.match_iregs.r1..rS...
125a0 20 20 20 20 20 20 20 20 20 20 20 20 3e 3e 3e 20 6d 61 74 63 68 5f 63 73 74 73 20 20 63 73 74 20 ............>>>.match_csts..cst.
125c0 28 53 61 66 65 33 32 2e 6f 66 5f 69 6e 74 20 75 69 6d 6d 29 0a 20 20 20 20 20 20 20 20 20 20 20 (Safe32.of_int.uimm)............
125e0 20 20 20 3e 3e 3e 20 72 65 63 75 72 5f 73 69 6d 70 6c 0a 20 20 20 20 20 20 20 20 20 20 7c 20 5f ...>>>.recur_simpl...........|._
12600 20 2d 3e 20 65 72 72 6f 72 0a 20 20 20 20 20 20 20 20 20 20 65 6e 64 0a 61 6e 64 20 63 68 65 63 .->.error...........end.and.chec
12620 6b 5f 62 75 69 6c 74 69 6e 5f 76 6c 6f 61 64 5f 63 6f 6d 6d 6f 6e 20 63 63 6f 64 65 20 65 63 6f k_builtin_vload_common.ccode.eco
12640 64 65 20 70 63 20 63 68 75 6e 6b 20 61 64 64 72 20 6f 66 66 73 65 74 20 72 65 73 20 66 77 20 3d de.pc.chunk.addr.offset.res.fw.=
12660 0a 20 20 6c 65 74 20 65 72 72 6f 72 20 3d 20 45 52 52 28 22 4e 6f 6e 2d 6d 61 74 63 68 69 6e 67 ...let.error.=.ERR("Non-matching
12680 20 69 6e 73 74 72 75 63 74 69 6f 6e 73 22 29 20 69 6e 0a 20 20 6c 65 74 20 72 65 63 75 72 5f 73 .instructions").in...let.recur_s
126a0 69 6d 70 6c 20 3d 20 63 6f 6d 70 61 72 65 5f 63 6f 64 65 20 63 63 6f 64 65 20 28 4c 69 73 74 2e impl.=.compare_code.ccode.(List.
126c0 74 6c 20 65 63 6f 64 65 29 20 28 49 6e 74 33 32 2e 61 64 64 20 70 63 20 34 6c 29 20 69 6e 0a 20 tl.ecode).(Int32.add.pc.4l).in..
126e0 20 62 65 67 69 6e 20 6d 61 74 63 68 20 63 68 75 6e 6b 2c 20 72 65 73 20 77 69 74 68 0a 20 20 7c .begin.match.chunk,.res.with...|
12700 20 4d 69 6e 74 38 75 6e 73 69 67 6e 65 64 2c 20 49 52 20 72 65 73 20 2d 3e 0a 20 20 20 20 20 20 .Mint8unsigned,.IR.res.->.......
12720 62 65 67 69 6e 20 6d 61 74 63 68 20 65 63 6f 64 65 20 77 69 74 68 0a 20 20 20 20 20 20 7c 20 4c begin.match.ecode.with.......|.L
12740 42 5a 28 72 44 2c 20 72 41 2c 20 64 29 20 3a 3a 20 65 73 20 2d 3e 0a 20 20 20 20 20 20 20 20 20 BZ(rD,.rA,.d).::.es.->..........
12760 20 66 77 0a 20 20 20 20 20 20 20 20 20 20 3e 3e 3e 20 6d 61 74 63 68 5f 69 72 65 67 73 20 20 72 .fw...........>>>.match_iregs..r
12780 65 73 20 20 20 20 72 44 0a 20 20 20 20 20 20 20 20 20 20 3e 3e 3e 20 6d 61 74 63 68 5f 69 72 65 es....rD...........>>>.match_ire
127a0 67 73 20 20 61 64 64 72 20 20 20 72 41 0a 20 20 20 20 20 20 20 20 20 20 3e 3e 3e 20 6d 61 74 63 gs..addr...rA...........>>>.matc
127c0 68 5f 63 73 74 73 20 20 20 6f 66 66 73 65 74 20 28 65 78 74 73 20 64 29 0a 20 20 20 20 20 20 20 h_csts...offset.(exts.d)........
127e0 20 20 20 3e 3e 3e 20 72 65 63 75 72 5f 73 69 6d 70 6c 0a 20 20 20 20 20 20 7c 20 5f 20 2d 3e 20 ...>>>.recur_simpl.......|._.->.
12800 65 72 72 6f 72 0a 20 20 20 20 20 20 65 6e 64 0a 20 20 7c 20 4d 69 6e 74 38 73 69 67 6e 65 64 2c error.......end...|.Mint8signed,
12820 20 49 52 20 72 65 73 20 2d 3e 0a 20 20 20 20 20 20 62 65 67 69 6e 20 6d 61 74 63 68 20 65 63 6f .IR.res.->.......begin.match.eco
12840 64 65 20 77 69 74 68 0a 20 20 20 20 20 20 7c 20 20 20 4c 42 5a 20 20 20 28 72 44 30 2c 20 72 41 de.with.......|...LBZ...(rD0,.rA
12860 30 2c 20 64 30 29 20 20 3a 3a 0a 20 20 20 20 20 20 20 20 20 20 45 58 54 53 42 78 28 72 53 31 2c 0,.d0)..::...........EXTSBx(rS1,
12880 20 72 41 31 2c 20 72 63 31 29 20 3a 3a 20 65 73 20 2d 3e 0a 20 20 20 20 20 20 20 20 20 20 66 77 .rA1,.rc1).::.es.->...........fw
128a0 0a 20 20 20 20 20 20 20 20 20 20 3e 3e 3e 20 6d 61 74 63 68 5f 69 72 65 67 73 20 20 72 65 73 20 ...........>>>.match_iregs..res.
128c0 20 20 20 72 44 30 0a 20 20 20 20 20 20 20 20 20 20 3e 3e 3e 20 6d 61 74 63 68 5f 69 72 65 67 73 ...rD0...........>>>.match_iregs
128e0 20 20 61 64 64 72 20 20 20 72 41 30 0a 20 20 20 20 20 20 20 20 20 20 3e 3e 3e 20 6d 61 74 63 68 ..addr...rA0...........>>>.match
12900 5f 63 73 74 73 20 20 20 6f 66 66 73 65 74 20 28 65 78 74 73 20 64 30 29 0a 20 20 20 20 20 20 20 _csts...offset.(exts.d0)........
12920 20 20 20 3e 3e 3e 20 6d 61 74 63 68 5f 69 72 65 67 73 20 20 72 65 73 20 20 20 20 72 53 31 0a 20 ...>>>.match_iregs..res....rS1..
12940 20 20 20 20 20 20 20 20 20 3e 3e 3e 20 6d 61 74 63 68 5f 69 72 65 67 73 20 20 72 65 73 20 20 20 .........>>>.match_iregs..res...
12960 20 72 41 31 0a 20 20 20 20 20 20 20 20 20 20 3e 3e 3e 20 6d 61 74 63 68 5f 62 6f 6f 6c 73 20 20 .rA1...........>>>.match_bools..
12980 66 61 6c 73 65 20 20 72 63 31 0a 20 20 20 20 20 20 20 20 20 20 3e 3e 3e 20 63 6f 6d 70 61 72 65 false..rc1...........>>>.compare
129a0 5f 63 6f 64 65 20 63 63 6f 64 65 20 65 73 20 28 49 6e 74 33 32 2e 61 64 64 20 38 6c 20 70 63 29 _code.ccode.es.(Int32.add.8l.pc)
129c0 0a 20 20 20 20 20 20 7c 20 5f 20 2d 3e 20 65 72 72 6f 72 0a 20 20 20 20 20 20 65 6e 64 0a 20 20 .......|._.->.error.......end...
129e0 7c 20 4d 69 6e 74 31 36 75 6e 73 69 67 6e 65 64 2c 20 49 52 20 72 65 73 20 2d 3e 0a 20 20 20 20 |.Mint16unsigned,.IR.res.->.....
12a00 20 20 62 65 67 69 6e 20 6d 61 74 63 68 20 65 63 6f 64 65 20 77 69 74 68 0a 20 20 20 20 20 20 7c ..begin.match.ecode.with.......|
12a20 20 4c 48 5a 28 72 44 2c 20 72 41 2c 20 64 29 20 3a 3a 20 65 73 20 2d 3e 0a 20 20 20 20 20 20 20 .LHZ(rD,.rA,.d).::.es.->........
12a40 20 20 20 66 77 0a 20 20 20 20 20 20 20 20 20 20 3e 3e 3e 20 6d 61 74 63 68 5f 69 72 65 67 73 20 ...fw...........>>>.match_iregs.
12a60 20 72 65 73 20 20 20 20 72 44 0a 20 20 20 20 20 20 20 20 20 20 3e 3e 3e 20 6d 61 74 63 68 5f 69 .res....rD...........>>>.match_i
12a80 72 65 67 73 20 20 61 64 64 72 20 20 20 72 41 0a 20 20 20 20 20 20 20 20 20 20 3e 3e 3e 20 6d 61 regs..addr...rA...........>>>.ma
12aa0 74 63 68 5f 63 73 74 73 20 20 20 6f 66 66 73 65 74 20 28 65 78 74 73 20 64 29 0a 20 20 20 20 20 tch_csts...offset.(exts.d)......
12ac0 20 20 20 20 20 3e 3e 3e 20 72 65 63 75 72 5f 73 69 6d 70 6c 0a 20 20 20 20 20 20 7c 20 5f 20 2d .....>>>.recur_simpl.......|._.-
12ae0 3e 20 65 72 72 6f 72 0a 20 20 20 20 20 20 65 6e 64 0a 20 20 7c 20 4d 69 6e 74 31 36 73 69 67 6e >.error.......end...|.Mint16sign
12b00 65 64 2c 20 49 52 20 72 65 73 20 2d 3e 0a 20 20 20 20 20 20 62 65 67 69 6e 20 6d 61 74 63 68 20 ed,.IR.res.->.......begin.match.
12b20 65 63 6f 64 65 20 77 69 74 68 0a 20 20 20 20 20 20 7c 20 4c 48 41 28 72 44 2c 20 72 41 2c 20 64 ecode.with.......|.LHA(rD,.rA,.d
12b40 29 20 3a 3a 20 65 73 20 2d 3e 0a 20 20 20 20 20 20 20 20 20 20 66 77 0a 20 20 20 20 20 20 20 20 ).::.es.->...........fw.........
12b60 20 20 3e 3e 3e 20 6d 61 74 63 68 5f 69 72 65 67 73 20 20 72 65 73 20 20 20 20 72 44 0a 20 20 20 ..>>>.match_iregs..res....rD....
12b80 20 20 20 20 20 20 20 3e 3e 3e 20 6d 61 74 63 68 5f 69 72 65 67 73 20 20 61 64 64 72 20 20 20 72 .......>>>.match_iregs..addr...r
12ba0 41 0a 20 20 20 20 20 20 20 20 20 20 3e 3e 3e 20 6d 61 74 63 68 5f 63 73 74 73 20 20 20 6f 66 66 A...........>>>.match_csts...off
12bc0 73 65 74 20 28 65 78 74 73 20 64 29 0a 20 20 20 20 20 20 20 20 20 20 3e 3e 3e 20 72 65 63 75 72 set.(exts.d)...........>>>.recur
12be0 5f 73 69 6d 70 6c 0a 20 20 20 20 20 20 7c 20 5f 20 2d 3e 20 65 72 72 6f 72 0a 20 20 20 20 20 20 _simpl.......|._.->.error.......
12c00 65 6e 64 0a 20 20 7c 20 4d 69 6e 74 33 32 2c 20 49 52 20 72 65 73 20 2d 3e 0a 20 20 20 20 20 20 end...|.Mint32,.IR.res.->.......
12c20 62 65 67 69 6e 20 6d 61 74 63 68 20 65 63 6f 64 65 20 77 69 74 68 0a 20 20 20 20 20 20 7c 20 4c begin.match.ecode.with.......|.L
12c40 57 5a 28 72 44 2c 20 72 41 2c 20 64 29 20 3a 3a 20 65 73 20 2d 3e 0a 20 20 20 20 20 20 20 20 20 WZ(rD,.rA,.d).::.es.->..........
12c60 20 66 77 0a 20 20 20 20 20 20 20 20 20 20 3e 3e 3e 20 6d 61 74 63 68 5f 69 72 65 67 73 20 20 72 .fw...........>>>.match_iregs..r
12c80 65 73 20 20 20 20 72 44 0a 20 20 20 20 20 20 20 20 20 20 3e 3e 3e 20 6d 61 74 63 68 5f 69 72 65 es....rD...........>>>.match_ire
12ca0 67 73 20 20 61 64 64 72 20 20 20 72 41 0a 20 20 20 20 20 20 20 20 20 20 3e 3e 3e 20 6d 61 74 63 gs..addr...rA...........>>>.matc
12cc0 68 5f 63 73 74 73 20 20 20 6f 66 66 73 65 74 20 28 65 78 74 73 20 64 29 0a 20 20 20 20 20 20 20 h_csts...offset.(exts.d)........
12ce0 20 20 20 3e 3e 3e 20 72 65 63 75 72 5f 73 69 6d 70 6c 0a 20 20 20 20 20 20 7c 20 5f 20 2d 3e 20 ...>>>.recur_simpl.......|._.->.
12d00 65 72 72 6f 72 0a 20 20 20 20 20 20 65 6e 64 0a 20 20 7c 20 4d 66 6c 6f 61 74 33 32 2c 20 46 52 error.......end...|.Mfloat32,.FR
12d20 20 72 65 73 20 2d 3e 0a 20 20 20 20 20 20 62 65 67 69 6e 20 6d 61 74 63 68 20 65 63 6f 64 65 20 .res.->.......begin.match.ecode.
12d40 77 69 74 68 0a 20 20 20 20 20 20 7c 20 4c 46 53 28 66 72 44 2c 20 72 41 2c 20 64 29 20 3a 3a 20 with.......|.LFS(frD,.rA,.d).::.
12d60 65 73 20 2d 3e 0a 20 20 20 20 20 20 20 20 20 20 66 77 0a 20 20 20 20 20 20 20 20 20 20 3e 3e 3e es.->...........fw...........>>>
12d80 20 6d 61 74 63 68 5f 66 72 65 67 73 20 20 72 65 73 20 20 20 20 66 72 44 0a 20 20 20 20 20 20 20 .match_fregs..res....frD........
12da0 20 20 20 3e 3e 3e 20 6d 61 74 63 68 5f 69 72 65 67 73 20 20 61 64 64 72 20 20 20 72 41 0a 20 20 ...>>>.match_iregs..addr...rA...
12dc0 20 20 20 20 20 20 20 20 3e 3e 3e 20 6d 61 74 63 68 5f 63 73 74 73 20 20 20 6f 66 66 73 65 74 20 ........>>>.match_csts...offset.
12de0 28 65 78 74 73 20 64 29 0a 20 20 20 20 20 20 20 20 20 20 3e 3e 3e 20 72 65 63 75 72 5f 73 69 6d (exts.d)...........>>>.recur_sim
12e00 70 6c 0a 20 20 20 20 20 20 7c 20 5f 20 2d 3e 20 65 72 72 6f 72 0a 20 20 20 20 20 20 65 6e 64 0a pl.......|._.->.error.......end.
12e20 20 20 7c 20 4d 66 6c 6f 61 74 36 34 2c 20 46 52 20 72 65 73 20 2d 3e 0a 20 20 20 20 20 20 62 65 ..|.Mfloat64,.FR.res.->.......be
12e40 67 69 6e 20 6d 61 74 63 68 20 65 63 6f 64 65 20 77 69 74 68 0a 20 20 20 20 20 20 7c 20 4c 46 44 gin.match.ecode.with.......|.LFD
12e60 28 66 72 44 2c 20 72 41 2c 20 64 29 20 3a 3a 20 65 73 20 2d 3e 0a 20 20 20 20 20 20 20 20 20 20 (frD,.rA,.d).::.es.->...........
12e80 66 77 0a 20 20 20 20 20 20 20 20 20 20 3e 3e 3e 20 6d 61 74 63 68 5f 66 72 65 67 73 20 20 72 65 fw...........>>>.match_fregs..re
12ea0 73 20 20 20 20 66 72 44 0a 20 20 20 20 20 20 20 20 20 20 3e 3e 3e 20 6d 61 74 63 68 5f 69 72 65 s....frD...........>>>.match_ire
12ec0 67 73 20 20 61 64 64 72 20 20 20 72 41 0a 20 20 20 20 20 20 20 20 20 20 3e 3e 3e 20 6d 61 74 63 gs..addr...rA...........>>>.matc
12ee0 68 5f 63 73 74 73 20 20 20 6f 66 66 73 65 74 20 28 65 78 74 73 20 64 29 0a 20 20 20 20 20 20 20 h_csts...offset.(exts.d)........
12f00 20 20 20 3e 3e 3e 20 72 65 63 75 72 5f 73 69 6d 70 6c 0a 20 20 20 20 20 20 7c 20 5f 20 2d 3e 20 ...>>>.recur_simpl.......|._.->.
12f20 65 72 72 6f 72 0a 20 20 20 20 20 20 65 6e 64 0a 20 20 7c 20 5f 20 2d 3e 20 65 72 72 6f 72 0a 20 error.......end...|._.->.error..
12f40 20 65 6e 64 0a 61 6e 64 20 63 68 65 63 6b 5f 62 75 69 6c 74 69 6e 5f 76 73 74 6f 72 65 5f 63 6f .end.and.check_builtin_vstore_co
12f60 6d 6d 6f 6e 20 63 63 6f 64 65 20 65 63 6f 64 65 20 70 63 20 63 68 75 6e 6b 20 61 64 64 72 20 6f mmon.ccode.ecode.pc.chunk.addr.o
12f80 66 66 73 65 74 20 73 72 63 20 66 77 20 3d 0a 20 20 6c 65 74 20 72 65 63 75 72 5f 73 69 6d 70 6c ffset.src.fw.=...let.recur_simpl
12fa0 20 3d 20 63 6f 6d 70 61 72 65 5f 63 6f 64 65 20 63 63 6f 64 65 20 28 4c 69 73 74 2e 74 6c 20 65 .=.compare_code.ccode.(List.tl.e
12fc0 63 6f 64 65 29 20 28 49 6e 74 33 32 2e 61 64 64 20 70 63 20 34 6c 29 20 69 6e 0a 20 20 6c 65 74 code).(Int32.add.pc.4l).in...let
12fe0 20 65 72 72 6f 72 20 3d 20 45 52 52 28 22 4e 6f 6e 2d 6d 61 74 63 68 69 6e 67 20 69 6e 73 74 72 .error.=.ERR("Non-matching.instr
13000 75 63 74 69 6f 6e 73 22 29 20 69 6e 0a 20 20 62 65 67 69 6e 20 6d 61 74 63 68 20 63 68 75 6e 6b uctions").in...begin.match.chunk
13020 2c 20 73 72 63 20 77 69 74 68 0a 20 20 7c 20 28 4d 69 6e 74 38 73 69 67 6e 65 64 20 7c 20 4d 69 ,.src.with...|.(Mint8signed.|.Mi
13040 6e 74 38 75 6e 73 69 67 6e 65 64 29 2c 20 49 52 20 73 72 63 20 2d 3e 0a 20 20 20 20 20 20 62 65 nt8unsigned),.IR.src.->.......be
13060 67 69 6e 20 6d 61 74 63 68 20 65 63 6f 64 65 20 77 69 74 68 0a 20 20 20 20 20 20 7c 20 53 54 42 gin.match.ecode.with.......|.STB
13080 28 72 53 2c 20 72 41 2c 20 64 29 20 3a 3a 20 65 73 20 2d 3e 0a 20 20 20 20 20 20 20 20 20 20 66 (rS,.rA,.d).::.es.->...........f
130a0 77 0a 20 20 20 20 20 20 20 20 20 20 3e 3e 3e 20 6d 61 74 63 68 5f 69 72 65 67 73 20 20 73 72 63 w...........>>>.match_iregs..src
130c0 20 20 20 20 72 53 0a 20 20 20 20 20 20 20 20 20 20 3e 3e 3e 20 6d 61 74 63 68 5f 69 72 65 67 73 ....rS...........>>>.match_iregs
130e0 20 20 61 64 64 72 20 20 20 72 41 0a 20 20 20 20 20 20 20 20 20 20 3e 3e 3e 20 6d 61 74 63 68 5f ..addr...rA...........>>>.match_
13100 63 73 74 73 20 20 20 6f 66 66 73 65 74 20 28 65 78 74 73 20 64 29 0a 20 20 20 20 20 20 20 20 20 csts...offset.(exts.d)..........
13120 20 3e 3e 3e 20 72 65 63 75 72 5f 73 69 6d 70 6c 0a 20 20 20 20 20 20 7c 20 5f 20 2d 3e 20 65 72 .>>>.recur_simpl.......|._.->.er
13140 72 6f 72 0a 20 20 20 20 20 20 65 6e 64 0a 20 20 7c 20 28 4d 69 6e 74 31 36 73 69 67 6e 65 64 20 ror.......end...|.(Mint16signed.
13160 7c 20 4d 69 6e 74 31 36 75 6e 73 69 67 6e 65 64 29 2c 20 49 52 20 73 72 63 20 2d 3e 0a 20 20 20 |.Mint16unsigned),.IR.src.->....
13180 20 20 20 62 65 67 69 6e 20 6d 61 74 63 68 20 65 63 6f 64 65 20 77 69 74 68 0a 20 20 20 20 20 20 ...begin.match.ecode.with.......
131a0 7c 20 53 54 48 28 72 53 2c 20 72 41 2c 20 64 29 20 3a 3a 20 65 73 20 2d 3e 0a 20 20 20 20 20 20 |.STH(rS,.rA,.d).::.es.->.......
131c0 20 20 20 20 66 77 0a 20 20 20 20 20 20 20 20 20 20 3e 3e 3e 20 6d 61 74 63 68 5f 69 72 65 67 73 ....fw...........>>>.match_iregs
131e0 20 20 73 72 63 20 20 20 20 72 53 0a 20 20 20 20 20 20 20 20 20 20 3e 3e 3e 20 6d 61 74 63 68 5f ..src....rS...........>>>.match_
13200 69 72 65 67 73 20 20 61 64 64 72 20 20 20 72 41 0a 20 20 20 20 20 20 20 20 20 20 3e 3e 3e 20 6d iregs..addr...rA...........>>>.m
13220 61 74 63 68 5f 63 73 74 73 20 20 20 6f 66 66 73 65 74 20 28 65 78 74 73 20 64 29 0a 20 20 20 20 atch_csts...offset.(exts.d).....
13240 20 20 20 20 20 20 3e 3e 3e 20 72 65 63 75 72 5f 73 69 6d 70 6c 0a 20 20 20 20 20 20 7c 20 5f 20 ......>>>.recur_simpl.......|._.
13260 2d 3e 20 65 72 72 6f 72 0a 20 20 20 20 20 20 65 6e 64 0a 20 20 7c 20 4d 69 6e 74 33 32 2c 20 49 ->.error.......end...|.Mint32,.I
13280 52 20 73 72 63 20 2d 3e 0a 20 20 20 20 20 20 62 65 67 69 6e 20 6d 61 74 63 68 20 65 63 6f 64 65 R.src.->.......begin.match.ecode
132a0 20 77 69 74 68 0a 20 20 20 20 20 20 7c 20 53 54 57 28 72 53 2c 20 72 41 2c 20 64 29 20 3a 3a 20 .with.......|.STW(rS,.rA,.d).::.
132c0 65 73 20 2d 3e 0a 20 20 20 20 20 20 20 20 20 20 66 77 0a 20 20 20 20 20 20 20 20 20 20 3e 3e 3e es.->...........fw...........>>>
132e0 20 6d 61 74 63 68 5f 69 72 65 67 73 20 20 73 72 63 20 20 20 20 72 53 0a 20 20 20 20 20 20 20 20 .match_iregs..src....rS.........
13300 20 20 3e 3e 3e 20 6d 61 74 63 68 5f 69 72 65 67 73 20 20 61 64 64 72 20 20 20 72 41 0a 20 20 20 ..>>>.match_iregs..addr...rA....
13320 20 20 20 20 20 20 20 3e 3e 3e 20 6d 61 74 63 68 5f 63 73 74 73 20 20 20 6f 66 66 73 65 74 20 28 .......>>>.match_csts...offset.(
13340 65 78 74 73 20 64 29 0a 20 20 20 20 20 20 20 20 20 20 3e 3e 3e 20 72 65 63 75 72 5f 73 69 6d 70 exts.d)...........>>>.recur_simp
13360 6c 0a 20 20 20 20 20 20 7c 20 5f 20 2d 3e 20 65 72 72 6f 72 0a 20 20 20 20 20 20 65 6e 64 0a 20 l.......|._.->.error.......end..
13380 20 7c 20 4d 66 6c 6f 61 74 33 32 2c 20 46 52 20 73 72 63 20 2d 3e 0a 20 20 20 20 20 20 62 65 67 .|.Mfloat32,.FR.src.->.......beg
133a0 69 6e 20 6d 61 74 63 68 20 65 63 6f 64 65 20 77 69 74 68 0a 20 20 20 20 20 20 7c 20 20 20 46 52 in.match.ecode.with.......|...FR
133c0 53 50 78 28 66 72 44 30 2c 20 66 72 42 30 2c 20 72 63 30 29 20 3a 3a 0a 20 20 20 20 20 20 20 20 SPx(frD0,.frB0,.rc0).::.........
133e0 20 20 53 54 46 53 20 28 66 72 53 31 2c 20 72 41 31 2c 20 20 64 31 29 20 20 3a 3a 20 65 73 20 2d ..STFS.(frS1,.rA1,..d1)..::.es.-
13400 3e 0a 20 20 20 20 20 20 20 20 20 20 66 77 0a 20 20 20 20 20 20 20 20 20 20 3e 3e 3e 20 6d 61 74 >...........fw...........>>>.mat
13420 63 68 5f 66 72 65 67 73 20 20 46 50 52 31 33 20 20 66 72 44 30 0a 20 20 20 20 20 20 20 20 20 20 ch_fregs..FPR13..frD0...........
13440 3e 3e 3e 20 6d 61 74 63 68 5f 66 72 65 67 73 20 20 73 72 63 20 20 20 20 66 72 42 30 0a 20 20 20 >>>.match_fregs..src....frB0....
13460 20 20 20 20 20 20 20 3e 3e 3e 20 6d 61 74 63 68 5f 62 6f 6f 6c 73 20 20 66 61 6c 73 65 20 20 72 .......>>>.match_bools..false..r
13480 63 30 0a 20 20 20 20 20 20 20 20 20 20 3e 3e 3e 20 6d 61 74 63 68 5f 66 72 65 67 73 20 20 46 50 c0...........>>>.match_fregs..FP
134a0 52 31 33 20 20 66 72 53 31 0a 20 20 20 20 20 20 20 20 20 20 3e 3e 3e 20 6d 61 74 63 68 5f 69 72 R13..frS1...........>>>.match_ir
134c0 65 67 73 20 20 61 64 64 72 20 20 20 72 41 31 0a 20 20 20 20 20 20 20 20 20 20 3e 3e 3e 20 6d 61 egs..addr...rA1...........>>>.ma
134e0 74 63 68 5f 63 73 74 73 20 20 20 6f 66 66 73 65 74 20 28 65 78 74 73 20 64 31 29 0a 20 20 20 20 tch_csts...offset.(exts.d1).....
13500 20 20 20 20 20 20 3e 3e 3e 20 63 6f 6d 70 61 72 65 5f 63 6f 64 65 20 63 63 6f 64 65 20 65 73 20 ......>>>.compare_code.ccode.es.
13520 28 49 6e 74 33 32 2e 61 64 64 20 70 63 20 38 6c 29 0a 20 20 20 20 20 20 7c 20 5f 20 2d 3e 20 65 (Int32.add.pc.8l).......|._.->.e
13540 72 72 6f 72 0a 20 20 20 20 20 20 65 6e 64 0a 20 20 7c 20 4d 66 6c 6f 61 74 36 34 2c 20 46 52 20 rror.......end...|.Mfloat64,.FR.
13560 73 72 63 20 2d 3e 0a 20 20 20 20 20 20 62 65 67 69 6e 20 6d 61 74 63 68 20 65 63 6f 64 65 20 77 src.->.......begin.match.ecode.w
13580 69 74 68 0a 20 20 20 20 20 20 7c 20 53 54 46 44 28 66 72 53 2c 20 72 41 2c 20 64 29 20 3a 3a 20 ith.......|.STFD(frS,.rA,.d).::.
135a0 65 73 20 2d 3e 0a 20 20 20 20 20 20 20 20 20 20 66 77 0a 20 20 20 20 20 20 20 20 20 20 3e 3e 3e es.->...........fw...........>>>
135c0 20 6d 61 74 63 68 5f 66 72 65 67 73 20 20 73 72 63 20 20 20 20 66 72 53 0a 20 20 20 20 20 20 20 .match_fregs..src....frS........
135e0 20 20 20 3e 3e 3e 20 6d 61 74 63 68 5f 69 72 65 67 73 20 20 61 64 64 72 20 20 20 72 41 0a 20 20 ...>>>.match_iregs..addr...rA...
13600 20 20 20 20 20 20 20 20 3e 3e 3e 20 6d 61 74 63 68 5f 63 73 74 73 20 20 20 6f 66 66 73 65 74 20 ........>>>.match_csts...offset.
13620 28 65 78 74 73 20 64 29 0a 20 20 20 20 20 20 20 20 20 20 3e 3e 3e 20 72 65 63 75 72 5f 73 69 6d (exts.d)...........>>>.recur_sim
13640 70 6c 0a 20 20 20 20 20 20 7c 20 5f 20 2d 3e 20 65 72 72 6f 72 0a 20 20 20 20 20 20 65 6e 64 0a pl.......|._.->.error.......end.
13660 20 20 7c 20 5f 20 2d 3e 20 65 72 72 6f 72 0a 20 20 65 6e 64 0a 0a 28 2a 2a 20 41 20 77 6f 72 6b ..|._.->.error...end..(**.A.work
13680 20 65 6c 65 6d 65 6e 74 20 69 73 20 61 20 74 72 69 70 6c 65 20 67 69 76 69 6e 67 20 61 20 43 6f .element.is.a.triple.giving.a.Co
136a0 6d 70 43 65 72 74 20 69 64 65 6e 74 20 66 6f 72 20 74 68 65 20 66 75 6e 63 74 69 6f 6e 20 74 6f mpCert.ident.for.the.function.to
136c0 0a 20 20 20 20 61 6e 61 6c 79 7a 65 2c 20 69 74 73 20 6e 61 6d 65 20 61 73 20 61 20 73 74 72 69 .....analyze,.its.name.as.a.stri
136e0 6e 67 2c 20 61 6e 64 20 74 68 65 20 61 63 74 75 61 6c 20 63 6f 64 65 2e 20 49 74 20 69 73 20 6e ng,.and.the.actual.code..It.is.n
13700 6f 74 20 6f 62 76 69 6f 75 73 20 68 6f 77 0a 20 20 20 20 74 6f 20 72 65 63 6f 76 65 72 20 6f 6e ot.obvious.how.....to.recover.on
13720 65 20 6f 66 20 74 68 65 20 74 68 72 65 65 20 63 6f 6d 70 6f 6e 65 6e 74 73 20 67 69 76 65 6e 20 e.of.the.three.components.given.
13740 74 68 65 20 6f 74 68 65 72 20 74 77 6f 2e 0a 2a 29 0a 74 79 70 65 20 77 6f 72 6b 6c 69 73 74 20 the.other.two..*).type.worklist.
13760 3d 20 28 69 64 65 6e 74 20 2a 20 73 74 72 69 6e 67 20 2a 20 63 63 6f 64 65 29 20 6c 69 73 74 0a =.(ident.*.string.*.ccode).list.
13780 0a 28 2a 2a 20 50 6f 70 73 20 61 20 77 6f 72 6b 20 65 6c 65 6d 65 6e 74 20 66 72 6f 6d 20 74 68 .(**.Pops.a.work.element.from.th
137a0 65 20 77 6f 72 6b 6c 69 73 74 2c 20 65 6e 73 75 72 69 6e 67 20 74 68 61 74 20 66 75 6c 6c 79 2d e.worklist,.ensuring.that.fully-
137c0 64 65 74 65 72 6d 69 6e 65 64 20 69 64 65 6e 74 73 0a 20 20 20 20 28 69 2e 65 2e 20 74 68 6f 73 determined.idents.....(i.e..thos
137e0 65 20 66 6f 72 20 77 68 69 63 68 20 74 68 65 20 70 6f 73 73 69 62 6c 65 20 76 69 72 74 75 61 6c e.for.which.the.possible.virtual
13800 20 61 64 64 72 65 73 73 20 68 61 76 65 20 62 65 65 6e 20 6e 61 72 72 6f 77 65 64 20 74 6f 20 6f .address.have.been.narrowed.to.o
13820 6e 65 0a 20 20 20 20 63 61 6e 64 69 64 61 74 65 29 20 61 72 65 20 70 69 63 6b 65 64 20 66 69 72 ne.....candidate).are.picked.fir
13840 73 74 2e 0a 20 20 20 20 57 68 65 6e 20 74 68 65 20 66 69 72 73 74 20 65 6c 65 6d 65 6e 74 20 69 st......When.the.first.element.i
13860 73 20 6e 6f 74 20 66 75 6c 6c 79 2d 64 65 74 65 72 6d 69 6e 65 64 2c 20 74 68 65 20 77 68 6f 6c s.not.fully-determined,.the.whol
13880 65 20 6c 69 73 74 20 69 73 20 73 6f 72 74 65 64 20 73 6f 0a 20 20 20 20 74 68 61 74 20 68 6f 70 e.list.is.sorted.so.....that.hop
138a0 65 66 75 6c 6c 79 20 73 65 76 65 72 61 6c 20 66 75 6c 6c 79 2d 64 65 74 65 72 6d 69 6e 65 64 20 efully.several.fully-determined.
138c0 69 64 65 6e 74 73 20 61 72 65 20 62 72 6f 75 67 68 74 20 61 74 20 74 68 65 20 62 65 67 69 6e 6e idents.are.brought.at.the.beginn
138e0 69 6e 67 0a 20 20 20 20 61 74 20 74 68 65 20 73 61 6d 65 20 74 69 6d 65 2e 0a 2a 29 0a 6c 65 74 ing.....at.the.same.time..*).let
13900 20 77 6f 72 6b 6c 69 73 74 5f 70 6f 70 20 66 77 20 77 6c 20 3d 0a 20 20 6d 61 74 63 68 20 77 6c .worklist_pop.fw.wl.=...match.wl
13920 20 77 69 74 68 0a 20 20 7c 20 5b 5d 20 20 20 20 20 20 20 20 20 20 20 2d 3e 20 4e 6f 6e 65 0a 20 .with...|.[]...........->.None..
13940 20 7c 20 68 3a 3a 74 20 2d 3e 0a 20 20 20 20 20 20 6c 65 74 20 28 69 2c 20 5f 2c 20 5f 29 20 3d .|.h::t.->.......let.(i,._,._).=
13960 20 68 20 69 6e 0a 20 20 20 20 20 20 6c 65 74 20 63 61 6e 64 69 64 61 74 65 73 20 3d 0a 20 20 20 .h.in.......let.candidates.=....
13980 20 20 20 20 20 74 72 79 20 50 6f 73 4d 61 70 2e 66 69 6e 64 20 69 20 66 77 2e 69 64 65 6e 74 5f .....try.PosMap.find.i.fw.ident_
139a0 74 6f 5f 73 79 6d 5f 6e 64 78 0a 20 20 20 20 20 20 20 20 77 69 74 68 20 4e 6f 74 5f 66 6f 75 6e to_sym_ndx.........with.Not_foun
139c0 64 20 2d 3e 20 5b 5d 0a 20 20 20 20 20 20 69 6e 0a 20 20 20 20 20 20 6d 61 74 63 68 20 63 61 6e d.->.[].......in.......match.can
139e0 64 69 64 61 74 65 73 20 77 69 74 68 0a 20 20 20 20 20 20 7c 20 5b 5d 20 7c 20 5b 5f 5d 20 2d 3e didates.with.......|.[].|.[_].->
13a00 20 53 6f 6d 65 20 28 68 2c 20 74 2c 20 63 61 6e 64 69 64 61 74 65 73 29 0a 20 20 20 20 20 20 7c .Some.(h,.t,.candidates).......|
13a20 20 5f 20 2d 3e 0a 20 20 20 20 20 20 20 20 20 20 6c 65 74 20 77 6c 20 3d 20 4c 69 73 74 2e 66 61 ._.->...........let.wl.=.List.fa
13a40 73 74 5f 73 6f 72 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 66 75 6e 20 28 69 31 2c 20 5f 2c st_sort.............(fun.(i1,._,
13a60 20 5f 29 20 28 69 32 2c 20 5f 2c 20 5f 29 20 2d 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ._).(i2,._,._).->...............
13a80 63 6f 6d 70 61 72 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 4c 69 73 74 2e 6c 65 compare.................(List.le
13aa0 6e 67 74 68 20 28 50 6f 73 4d 61 70 2e 66 69 6e 64 20 69 31 20 66 77 2e 69 64 65 6e 74 5f 74 6f ngth.(PosMap.find.i1.fw.ident_to
13ac0 5f 73 79 6d 5f 6e 64 78 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 4c 69 73 74 _sym_ndx)).................(List
13ae0 2e 6c 65 6e 67 74 68 20 28 50 6f 73 4d 61 70 2e 66 69 6e 64 20 69 32 20 66 77 2e 69 64 65 6e 74 .length.(PosMap.find.i2.fw.ident
13b00 5f 74 6f 5f 73 79 6d 5f 6e 64 78 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 77 6c 20 69 6e _to_sym_ndx))).............wl.in
13b20 0a 20 20 20 20 20 20 20 20 20 20 6c 65 74 20 77 69 6e 6e 65 72 20 3d 20 4c 69 73 74 2e 68 64 20 ...........let.winner.=.List.hd.
13b40 77 6c 20 69 6e 0a 20 20 20 20 20 20 20 20 20 20 6c 65 74 20 28 69 2c 20 5f 2c 20 5f 29 20 3d 20 wl.in...........let.(i,._,._).=.
13b60 77 69 6e 6e 65 72 20 69 6e 0a 20 20 20 20 20 20 20 20 20 20 53 6f 6d 65 20 28 77 69 6e 6e 65 72 winner.in...........Some.(winner
13b80 2c 20 4c 69 73 74 2e 74 6c 20 77 6c 2c 20 50 6f 73 4d 61 70 2e 66 69 6e 64 20 69 20 66 77 2e 69 ,.List.tl.wl,.PosMap.find.i.fw.i
13ba0 64 65 6e 74 5f 74 6f 5f 73 79 6d 5f 6e 64 78 29 0a 0a 28 2a 2a 20 50 72 6f 63 65 73 73 65 73 20 dent_to_sym_ndx)..(**.Processes.
13bc0 61 20 77 6f 72 6b 6c 69 73 74 2c 20 74 68 72 65 61 64 69 6e 67 20 69 6e 20 74 68 65 20 66 72 61 a.worklist,.threading.in.the.fra
13be0 6d 65 77 6f 72 6b 2e 0a 2a 29 0a 6c 65 74 20 72 65 63 20 77 6f 72 6b 6c 69 73 74 5f 70 72 6f 63 mework..*).let.rec.worklist_proc
13c00 65 73 73 20 28 77 6c 3a 20 77 6f 72 6b 6c 69 73 74 29 20 73 66 77 3a 20 73 5f 66 72 61 6d 65 77 ess.(wl:.worklist).sfw:.s_framew
13c20 6f 72 6b 20 3d 0a 20 20 6d 61 74 63 68 20 77 6f 72 6b 6c 69 73 74 5f 70 6f 70 20 73 66 77 20 77 ork.=...match.worklist_pop.sfw.w
13c40 6c 20 77 69 74 68 0a 20 20 7c 20 4e 6f 6e 65 20 2d 3e 20 73 66 77 20 28 2a 64 6f 6e 65 2a 29 0a l.with...|.None.->.sfw.(*done*).
13c60 20 20 7c 20 53 6f 6d 65 20 28 28 69 64 65 6e 74 2c 20 6e 61 6d 65 2c 20 63 63 6f 64 65 29 2c 20 ..|.Some.((ident,.name,.ccode),.
13c80 77 6c 2c 20 63 61 6e 64 69 64 61 74 65 73 29 20 2d 3e 0a 20 20 20 20 20 20 6c 65 74 20 70 72 6f wl,.candidates).->.......let.pro
13ca0 63 65 73 73 5f 6e 64 78 20 6e 64 78 20 3d 20 28 0a 20 20 20 20 20 20 20 20 6c 65 74 20 65 6c 66 cess_ndx.ndx.=.(.........let.elf
13cc0 20 3d 20 28 73 66 77 20 7c 2e 20 73 66 5f 65 66 29 2e 65 6c 66 20 69 6e 0a 20 20 20 20 20 20 20 .=.(sfw.|..sf_ef).elf.in........
13ce0 20 6c 65 74 20 70 63 20 3d 20 65 6c 66 2e 65 5f 73 79 6d 74 61 62 2e 28 6e 64 78 29 2e 73 74 5f .let.pc.=.elf.e_symtab.(ndx).st_
13d00 76 61 6c 75 65 20 69 6e 0a 20 20 20 20 20 20 20 20 6d 61 74 63 68 20 63 6f 64 65 5f 6f 66 5f 73 value.in.........match.code_of_s
13d20 79 6d 5f 6e 64 78 20 65 6c 66 20 6e 64 78 20 77 69 74 68 0a 20 20 20 20 20 20 20 20 7c 20 4e 6f ym_ndx.elf.ndx.with.........|.No
13d40 6e 65 20 2d 3e 20 61 73 73 65 72 74 20 66 61 6c 73 65 0a 20 20 20 20 20 20 20 20 7c 20 53 6f 6d ne.->.assert.false.........|.Som
13d60 65 20 65 63 6f 64 65 20 2d 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 73 66 77 0a 20 20 20 20 20 e.ecode.->.............sfw......
13d80 20 20 20 20 20 20 20 3e 3e 3e 20 73 66 5f 65 66 20 5e 25 3d 0a 20 20 20 20 20 20 20 20 20 20 20 .......>>>.sf_ef.^%=............
13da0 20 61 64 64 5f 6c 6f 67 20 28 44 45 42 55 47 28 22 20 20 50 72 6f 63 65 73 73 69 6e 67 20 66 75 .add_log.(DEBUG("..Processing.fu
13dc0 6e 63 74 69 6f 6e 3a 20 22 20 5e 20 6e 61 6d 65 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 3e nction:.".^.name)).............>
13de0 3e 3e 20 28 66 75 6e 20 73 66 77 20 2d 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7b 0a 20 >>.(fun.sfw.->...............{..
13e00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 73 66 20 3d 20 73 66 77 3b 0a 20 20 20 20 20 20 20 ...............sf.=.sfw;........
13e20 20 20 20 20 20 20 20 20 20 74 68 69 73 5f 73 79 6d 5f 6e 64 78 20 3d 20 6e 64 78 3b 0a 20 20 20 .........this_sym_ndx.=.ndx;....
13e40 20 20 20 20 20 20 20 20 20 20 20 20 20 74 68 69 73 5f 69 64 65 6e 74 20 3d 20 69 64 65 6e 74 3b .............this_ident.=.ident;
13e60 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6c 61 62 65 6c 5f 74 6f 5f 76 61 64 64 72 20 .................label_to_vaddr.
13e80 3d 20 50 6f 73 4d 61 70 2e 65 6d 70 74 79 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 =.PosMap.empty;.................
13ea0 6c 61 62 65 6c 5f 6c 69 73 74 20 3d 20 5b 5d 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7d label_list.=.[];...............}
13ec0 0a 20 20 20 20 20 20 20 20 20 20 20 20 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 3e 3e 3e 20 63 .............).............>>>.c
13ee0 6f 6d 70 61 72 65 5f 63 6f 64 65 20 63 63 6f 64 65 20 65 63 6f 64 65 20 70 63 0a 20 20 20 20 20 ompare_code.ccode.ecode.pc......
13f00 20 20 20 20 20 20 20 3e 3e 3f 20 6d 61 72 6b 5f 63 6f 76 65 72 65 64 5f 66 75 6e 5f 73 79 6d 5f .......>>?.mark_covered_fun_sym_
13f20 6e 64 78 20 6e 64 78 0a 20 20 20 20 20 20 29 20 69 6e 0a 20 20 20 20 20 20 62 65 67 69 6e 20 6d ndx.ndx.......).in.......begin.m
13f40 61 74 63 68 20 63 61 6e 64 69 64 61 74 65 73 20 77 69 74 68 0a 20 20 20 20 20 20 7c 20 5b 5d 20 atch.candidates.with.......|.[].
13f60 20 20 20 2d 3e 0a 20 20 20 20 20 20 20 20 20 20 73 66 77 0a 20 20 20 20 20 20 20 20 20 20 3e 3e ...->...........sfw...........>>
13f80 3e 20 73 66 5f 65 66 20 5e 25 3d 0a 20 20 20 20 20 20 20 20 20 20 61 64 64 5f 6c 6f 67 20 28 45 >.sf_ef.^%=...........add_log.(E
13fa0 52 52 4f 52 28 22 53 6b 69 70 70 69 6e 67 20 6d 69 73 73 69 6e 67 20 73 79 6d 62 6f 6c 20 22 20 RROR("Skipping.missing.symbol.".
13fc0 5e 20 6e 61 6d 65 29 29 0a 20 20 20 20 20 20 20 20 20 20 3e 3e 3e 20 77 6f 72 6b 6c 69 73 74 5f ^.name))...........>>>.worklist_
13fe0 70 72 6f 63 65 73 73 20 77 6c 0a 20 20 20 20 20 20 7c 20 5b 6e 64 78 5d 20 2d 3e 0a 20 20 20 20 process.wl.......|.[ndx].->.....
14000 20 20 20 20 20 20 62 65 67 69 6e 20 6d 61 74 63 68 20 70 72 6f 63 65 73 73 5f 6e 64 78 20 6e 64 ......begin.match.process_ndx.nd
14020 78 20 77 69 74 68 0a 20 20 20 20 20 20 20 20 20 20 7c 20 4f 4b 28 66 66 77 29 20 2d 3e 0a 20 20 x.with...........|.OK(ffw).->...
14040 20 20 20 20 20 20 20 20 20 20 20 20 66 66 77 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3e 3e ............ffw...............>>
14060 3e 20 63 68 65 63 6b 5f 6c 61 62 65 6c 5f 65 78 69 73 74 65 6e 63 65 0a 20 20 20 20 20 20 20 20 >.check_label_existence.........
14080 20 20 20 20 20 20 3e 3e 3e 20 63 68 65 63 6b 5f 6c 61 62 65 6c 5f 75 6e 69 63 69 74 79 0a 20 20 ......>>>.check_label_unicity...
140a0 20 20 20 20 20 20 20 20 20 20 20 20 3e 3e 3e 20 28 66 75 6e 20 66 66 77 20 2d 3e 0a 20 20 20 20 ............>>>.(fun.ffw.->.....
140c0 20 20 20 20 20 20 20 20 20 20 20 20 77 6f 72 6b 6c 69 73 74 5f 70 72 6f 63 65 73 73 20 77 6c 20 ............worklist_process.wl.
140e0 66 66 77 2e 73 66 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 29 0a 20 20 20 20 20 20 20 20 20 ffw.sf...............)..........
14100 20 7c 20 45 52 52 28 73 29 20 2d 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 73 66 77 0a 20 .|.ERR(s).->...............sfw..
14120 20 20 20 20 20 20 20 20 20 20 20 20 20 3e 3e 3e 20 73 66 5f 65 66 20 5e 25 3d 0a 20 20 20 20 20 .............>>>.sf_ef.^%=......
14140 20 20 20 20 20 20 20 20 20 61 64 64 5f 6c 6f 67 20 28 45 52 52 4f 52 28 0a 20 20 20 20 20 20 20 .........add_log.(ERROR(........
14160 20 20 20 20 20 20 20 20 20 22 55 6e 69 71 75 65 20 63 61 6e 64 69 64 61 74 65 20 64 69 64 20 6e ........."Unique.candidate.did.n
14180 6f 74 20 6d 61 74 63 68 3a 20 22 20 5e 20 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 29 29 ot.match:.".^.s...............))
141a0 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3e 3e 3e 20 77 6f 72 6b 6c 69 73 74 5f 70 72 6f 63 ...............>>>.worklist_proc
141c0 65 73 73 20 77 6c 0a 20 20 20 20 20 20 20 20 20 20 65 6e 64 0a 20 20 20 20 20 20 7c 20 6e 64 78 ess.wl...........end.......|.ndx
141e0 65 73 20 2d 3e 0a 20 20 20 20 20 20 20 20 20 20 28 2a 20 4d 75 6c 74 69 70 6c 65 20 63 61 6e 64 es.->...........(*.Multiple.cand
14200 69 64 61 74 65 73 20 66 6f 72 20 6f 6e 65 20 73 79 6d 62 6f 6c 20 2a 29 0a 20 20 20 20 20 20 20 idates.for.one.symbol.*)........
14220 20 20 20 6c 65 74 20 66 77 73 20 3d 20 66 69 6c 74 65 72 5f 6f 6b 20 28 4c 69 73 74 2e 6d 61 70 ...let.fws.=.filter_ok.(List.map
14240 20 70 72 6f 63 65 73 73 5f 6e 64 78 20 6e 64 78 65 73 29 20 69 6e 0a 20 20 20 20 20 20 20 20 20 .process_ndx.ndxes).in..........
14260 20 62 65 67 69 6e 20 6d 61 74 63 68 20 66 77 73 20 77 69 74 68 0a 20 20 20 20 20 20 20 20 20 20 .begin.match.fws.with...........
14280 7c 20 5b 5d 20 2d 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 73 66 77 0a 20 20 20 20 20 20 |.[].->...............sfw.......
142a0 20 20 20 20 20 20 20 20 3e 3e 3e 20 73 66 5f 65 66 20 5e 25 3d 0a 20 20 20 20 20 20 20 20 20 20 ........>>>.sf_ef.^%=...........
142c0 20 20 20 20 61 64 64 5f 6c 6f 67 20 28 45 52 52 4f 52 28 22 4e 6f 20 6d 61 74 63 68 69 6e 67 20 ....add_log.(ERROR("No.matching.
142e0 63 61 6e 64 69 64 61 74 65 22 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3e 3e 3e 20 77 candidate"))...............>>>.w
14300 6f 72 6b 6c 69 73 74 5f 70 72 6f 63 65 73 73 20 77 6c 0a 20 20 20 20 20 20 20 20 20 20 7c 20 5b orklist_process.wl...........|.[
14320 66 66 77 5d 20 2d 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 77 6f 72 6b 6c 69 73 74 5f 70 ffw].->...............worklist_p
14340 72 6f 63 65 73 73 20 77 6c 20 66 66 77 2e 73 66 0a 20 20 20 20 20 20 20 20 20 20 7c 20 66 77 73 rocess.wl.ffw.sf...........|.fws
14360 20 2d 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 73 66 77 0a 20 20 20 20 20 20 20 20 20 20 .->...............sfw...........
14380 20 20 20 20 3e 3e 3e 20 73 66 5f 65 66 20 5e 25 3d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ....>>>.sf_ef.^%=...............
143a0 61 64 64 5f 6c 6f 67 20 28 45 52 52 4f 52 28 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 add_log.(ERROR(.................
143c0 22 4d 75 6c 74 69 70 6c 65 20 6d 61 74 63 68 69 6e 67 20 63 61 6e 64 69 64 61 74 65 73 20 66 6f "Multiple.matching.candidates.fo
143e0 72 20 73 79 6d 62 6f 6c 3a 20 22 20 5e 20 6e 61 6d 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 r.symbol:.".^.name..............
14400 20 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3e 3e 3e 20 77 6f 72 6b 6c 69 73 74 5f 70 .))...............>>>.worklist_p
14420 72 6f 63 65 73 73 20 77 6c 0a 20 20 20 20 20 20 20 20 20 20 65 6e 64 0a 20 20 20 20 20 20 65 6e rocess.wl...........end.......en
14440 64 0a 0a 28 2a 2a 20 54 68 69 73 20 76 61 72 69 61 6e 74 20 68 65 6c 70 73 20 72 65 70 72 65 73 d..(**.This.variant.helps.repres
14460 65 6e 74 69 6e 67 20 62 69 67 20 65 6d 70 74 79 20 62 69 74 73 74 72 69 6e 67 73 20 77 69 74 68 enting.big.empty.bitstrings.with
14480 6f 75 74 20 61 6c 6c 6f 63 61 74 69 6e 67 0a 20 20 20 20 6d 65 6d 6f 72 79 2e 20 49 74 20 69 73 out.allocating.....memory..It.is
144a0 20 75 73 65 66 75 6c 20 74 6f 20 63 72 65 61 74 65 20 61 20 62 69 74 73 74 72 69 6e 67 20 66 6f .useful.to.create.a.bitstring.fo
144c0 72 20 61 6e 20 53 54 54 5f 4e 4f 42 49 54 53 20 73 79 6d 62 6f 6c 2c 20 66 6f 72 0a 20 20 20 20 r.an.STT_NOBITS.symbol,.for.....
144e0 69 6e 73 74 61 6e 63 65 2e 0a 2a 29 0a 74 79 70 65 20 6d 61 79 62 65 5f 62 69 74 73 74 72 69 6e instance..*).type.maybe_bitstrin
14500 67 20 3d 0a 20 20 7c 20 45 6d 70 74 79 20 6f 66 20 69 6e 74 0a 20 20 7c 20 4e 6f 6e 45 6d 70 74 g.=...|.Empty.of.int...|.NonEmpt
14520 79 20 6f 66 20 62 69 74 73 74 72 69 6e 67 0a 0a 28 2a 2a 20 43 6f 6d 70 61 72 65 73 20 61 20 64 y.of.bitstring..(**.Compares.a.d
14540 61 74 61 20 73 79 6d 62 6f 6c 20 77 69 74 68 20 69 74 73 20 65 78 70 65 63 74 65 64 20 63 6f 6e ata.symbol.with.its.expected.con
14560 74 65 6e 74 73 2e 20 52 65 74 75 72 6e 73 20 74 68 65 20 75 70 64 61 74 65 64 0a 20 20 20 20 66 tents..Returns.the.updated.....f
14580 72 61 6d 65 77 6f 72 6b 20 61 73 20 77 65 6c 6c 20 61 73 20 74 68 65 20 73 69 7a 65 20 6f 66 20 ramework.as.well.as.the.size.of.
145a0 74 68 65 20 64 61 74 61 20 6d 61 74 63 68 65 64 2e 0a 2a 2a 29 0a 6c 65 74 20 63 6f 6d 70 61 72 the.data.matched..**).let.compar
145c0 65 5f 64 61 74 61 20 28 6c 3a 20 69 6e 69 74 5f 64 61 74 61 20 6c 69 73 74 29 20 28 6d 61 79 62 e_data.(l:.init_data.list).(mayb
145e0 65 62 73 3a 20 6d 61 79 62 65 5f 62 69 74 73 74 72 69 6e 67 29 20 28 73 66 77 3a 20 73 5f 66 72 ebs:.maybe_bitstring).(sfw:.s_fr
14600 61 6d 65 77 6f 72 6b 29 0a 20 20 20 20 3a 20 28 73 5f 66 72 61 6d 65 77 6f 72 6b 20 2a 20 69 6e amework).....:.(s_framework.*.in
14620 74 29 20 6f 72 5f 65 72 72 20 3d 0a 20 20 6c 65 74 20 65 72 72 6f 72 20 3d 20 45 52 52 28 22 52 t).or_err.=...let.error.=.ERR("R
14640 65 61 63 68 65 64 20 65 6e 64 20 6f 66 20 64 61 74 61 20 62 69 74 73 74 72 69 6e 67 20 74 6f 6f eached.end.of.data.bitstring.too
14660 20 73 6f 6f 6e 22 29 20 69 6e 0a 20 20 6c 65 74 20 72 65 63 20 63 6f 6d 70 61 72 65 5f 64 61 74 .soon").in...let.rec.compare_dat
14680 61 5f 61 75 78 20 6c 20 62 73 20 73 20 28 73 66 77 3a 20 73 5f 66 72 61 6d 65 77 6f 72 6b 29 3a a_aux.l.bs.s.(sfw:.s_framework):
146a0 0a 20 20 20 20 20 20 28 73 5f 66 72 61 6d 65 77 6f 72 6b 20 2a 20 69 6e 74 29 20 6f 72 5f 65 72 .......(s_framework.*.int).or_er
146c0 72 20 3d 0a 20 20 20 20 6d 61 74 63 68 20 6c 20 77 69 74 68 0a 20 20 20 20 7c 20 5b 5d 20 2d 3e r.=.....match.l.with.....|.[].->
146e0 20 4f 4b 28 73 66 77 2c 20 73 29 0a 20 20 20 20 7c 20 64 3a 3a 6c 20 2d 3e 0a 20 20 20 20 20 20 .OK(sfw,.s).....|.d::l.->.......
14700 20 20 6c 65 74 20 73 66 77 20 3d 0a 20 20 20 20 20 20 20 20 20 20 69 66 20 21 64 65 62 75 67 0a ..let.sfw.=...........if.!debug.
14720 20 20 20 20 20 20 20 20 20 20 74 68 65 6e 20 28 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 73 66 ..........then.(.............(sf
14740 5f 65 66 20 5e 25 3d 20 61 64 64 5f 6c 6f 67 20 28 44 45 42 55 47 28 73 74 72 69 6e 67 5f 6f 66 _ef.^%=.add_log.(DEBUG(string_of
14760 5f 69 6e 69 74 5f 64 61 74 61 20 64 29 29 29 20 73 66 77 0a 20 20 20 20 20 20 20 20 20 20 29 0a _init_data.d))).sfw...........).
14780 20 20 20 20 20 20 20 20 20 20 65 6c 73 65 20 73 66 77 0a 20 20 20 20 20 20 20 20 69 6e 0a 20 20 ..........else.sfw.........in...
147a0 20 20 20 20 20 20 62 65 67 69 6e 20 6d 61 74 63 68 20 64 20 77 69 74 68 0a 20 20 20 20 20 20 20 ......begin.match.d.with........
147c0 20 7c 20 49 6e 69 74 5f 69 6e 74 38 28 69 29 20 2d 3e 20 28 0a 20 20 20 20 20 20 20 20 20 20 62 .|.Init_int8(i).->.(...........b
147e0 69 74 6d 61 74 63 68 20 62 73 20 77 69 74 68 0a 20 20 20 20 20 20 20 20 20 20 7c 20 7b 20 6a 20 itmatch.bs.with...........|.{.j.
14800 3a 20 38 20 3a 20 69 6e 74 3b 20 62 73 20 3a 20 2d 31 20 3a 20 62 69 74 73 74 72 69 6e 67 20 7d :.8.:.int;.bs.:.-1.:.bitstring.}
14820 20 2d 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 28 7a 5f 69 6e 74 5f 6c 61 78 20 .->...............if.(z_int_lax.
14840 69 29 20 6c 61 6e 64 20 30 78 46 46 20 3d 20 6a 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 74 i).land.0xFF.=.j...............t
14860 68 65 6e 20 63 6f 6d 70 61 72 65 5f 64 61 74 61 5f 61 75 78 20 6c 20 62 73 20 28 73 20 2b 20 31 hen.compare_data_aux.l.bs.(s.+.1
14880 29 20 73 66 77 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 65 6c 73 65 20 45 52 52 28 22 57 72 ).sfw...............else.ERR("Wr
148a0 6f 6e 67 20 69 6e 74 38 22 29 0a 20 20 20 20 20 20 20 20 20 20 7c 20 7b 20 5f 20 7d 20 2d 3e 20 ong.int8")...........|.{._.}.->.
148c0 65 72 72 6f 72 0a 20 20 20 20 20 20 20 20 29 0a 20 20 20 20 20 20 20 20 7c 20 49 6e 69 74 5f 69 error.........).........|.Init_i
148e0 6e 74 31 36 28 69 29 20 2d 3e 20 28 0a 20 20 20 20 20 20 20 20 20 20 62 69 74 6d 61 74 63 68 20 nt16(i).->.(...........bitmatch.
14900 62 73 20 77 69 74 68 0a 20 20 20 20 20 20 20 20 20 20 7c 20 7b 20 6a 20 3a 20 31 36 20 3a 20 69 bs.with...........|.{.j.:.16.:.i
14920 6e 74 3b 20 62 73 20 3a 20 2d 31 20 3a 20 62 69 74 73 74 72 69 6e 67 20 7d 20 2d 3e 0a 20 20 20 nt;.bs.:.-1.:.bitstring.}.->....
14940 20 20 20 20 20 20 20 20 20 20 20 69 66 20 28 7a 5f 69 6e 74 5f 6c 61 78 20 69 29 20 6c 61 6e 64 ...........if.(z_int_lax.i).land
14960 20 30 78 46 46 46 46 20 3d 20 6a 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 74 68 65 6e 20 63 .0xFFFF.=.j...............then.c
14980 6f 6d 70 61 72 65 5f 64 61 74 61 5f 61 75 78 20 6c 20 62 73 20 28 73 20 2b 20 32 29 20 73 66 77 ompare_data_aux.l.bs.(s.+.2).sfw
149a0 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 65 6c 73 65 20 45 52 52 28 22 57 72 6f 6e 67 20 69 ...............else.ERR("Wrong.i
149c0 6e 74 31 36 22 29 0a 20 20 20 20 20 20 20 20 20 20 7c 20 7b 20 5f 20 7d 20 2d 3e 20 65 72 72 6f nt16")...........|.{._.}.->.erro
149e0 72 0a 20 20 20 20 20 20 20 20 29 0a 20 20 20 20 20 20 20 20 7c 20 49 6e 69 74 5f 69 6e 74 33 32 r.........).........|.Init_int32
14a00 28 69 29 20 2d 3e 20 28 0a 20 20 20 20 20 20 20 20 20 20 62 69 74 6d 61 74 63 68 20 62 73 20 77 (i).->.(...........bitmatch.bs.w
14a20 69 74 68 0a 20 20 20 20 20 20 20 20 20 20 7c 20 7b 20 6a 20 3a 20 33 32 20 3a 20 69 6e 74 3b 20 ith...........|.{.j.:.32.:.int;.
14a40 62 73 20 3a 20 2d 31 20 3a 20 62 69 74 73 74 72 69 6e 67 20 7d 20 2d 3e 0a 20 20 20 20 20 20 20 bs.:.-1.:.bitstring.}.->........
14a60 20 20 20 20 20 20 20 69 66 20 7a 5f 69 6e 74 33 32 5f 6c 61 78 20 69 20 3d 20 6a 0a 20 20 20 20 .......if.z_int32_lax.i.=.j.....
14a80 20 20 20 20 20 20 20 20 20 20 74 68 65 6e 20 63 6f 6d 70 61 72 65 5f 64 61 74 61 5f 61 75 78 20 ..........then.compare_data_aux.
14aa0 6c 20 62 73 20 28 73 20 2b 20 34 29 20 73 66 77 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 65 l.bs.(s.+.4).sfw...............e
14ac0 6c 73 65 20 45 52 52 28 22 57 72 6f 6e 67 20 69 6e 74 33 32 22 29 0a 20 20 20 20 20 20 20 20 20 lse.ERR("Wrong.int32")..........
14ae0 20 7c 20 7b 20 5f 20 7d 20 2d 3e 20 65 72 72 6f 72 0a 20 20 20 20 20 20 20 20 29 0a 20 20 20 20 .|.{._.}.->.error.........).....
14b00 20 20 20 20 7c 20 49 6e 69 74 5f 66 6c 6f 61 74 33 32 28 66 29 20 2d 3e 20 28 0a 20 20 20 20 20 ....|.Init_float32(f).->.(......
14b20 20 20 20 20 20 62 69 74 6d 61 74 63 68 20 62 73 20 77 69 74 68 0a 20 20 20 20 20 20 20 20 20 20 .....bitmatch.bs.with...........
14b40 7c 20 7b 20 6a 20 3a 20 33 32 20 3a 20 69 6e 74 3b 20 62 73 20 3a 20 2d 31 20 3a 20 62 69 74 73 |.{.j.:.32.:.int;.bs.:.-1.:.bits
14b60 74 72 69 6e 67 20 7d 20 2d 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 66 20 3d 20 tring.}.->...............if.f.=.
14b80 49 6e 74 33 32 2e 66 6c 6f 61 74 5f 6f 66 5f 62 69 74 73 20 6a 0a 20 20 20 20 20 20 20 20 20 20 Int32.float_of_bits.j...........
14ba0 20 20 20 20 74 68 65 6e 20 63 6f 6d 70 61 72 65 5f 64 61 74 61 5f 61 75 78 20 6c 20 62 73 20 28 ....then.compare_data_aux.l.bs.(
14bc0 73 20 2b 20 34 29 20 73 66 77 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 65 6c 73 65 20 45 52 s.+.4).sfw...............else.ER
14be0 52 28 22 57 72 6f 6e 67 20 66 6c 6f 61 74 33 32 22 29 0a 20 20 20 20 20 20 20 20 20 20 7c 20 7b R("Wrong.float32")...........|.{
14c00 20 5f 20 7d 20 2d 3e 20 65 72 72 6f 72 0a 20 20 20 20 20 20 20 20 29 0a 20 20 20 20 20 20 20 20 ._.}.->.error.........).........
14c20 7c 20 49 6e 69 74 5f 66 6c 6f 61 74 36 34 28 66 29 20 2d 3e 20 28 0a 20 20 20 20 20 20 20 20 20 |.Init_float64(f).->.(..........
14c40 20 62 69 74 6d 61 74 63 68 20 62 73 20 77 69 74 68 0a 20 20 20 20 20 20 20 20 20 20 7c 20 7b 20 .bitmatch.bs.with...........|.{.
14c60 6a 20 3a 20 36 34 20 3a 20 69 6e 74 3b 20 62 73 20 3a 20 2d 31 20 3a 20 62 69 74 73 74 72 69 6e j.:.64.:.int;.bs.:.-1.:.bitstrin
14c80 67 20 7d 20 2d 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 66 20 3d 20 49 6e 74 36 g.}.->...............if.f.=.Int6
14ca0 34 2e 66 6c 6f 61 74 5f 6f 66 5f 62 69 74 73 20 6a 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 4.float_of_bits.j...............
14cc0 74 68 65 6e 20 63 6f 6d 70 61 72 65 5f 64 61 74 61 5f 61 75 78 20 6c 20 62 73 20 28 73 20 2b 20 then.compare_data_aux.l.bs.(s.+.
14ce0 38 29 20 73 66 77 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 65 6c 73 65 20 45 52 52 28 22 57 8).sfw...............else.ERR("W
14d00 72 6f 6e 67 20 66 6c 6f 61 74 36 34 22 29 0a 20 20 20 20 20 20 20 20 20 20 7c 20 7b 20 5f 20 7d rong.float64")...........|.{._.}
14d20 20 2d 3e 20 65 72 72 6f 72 0a 20 20 20 20 20 20 20 20 29 0a 20 20 20 20 20 20 20 20 7c 20 49 6e .->.error.........).........|.In
14d40 69 74 5f 73 70 61 63 65 28 7a 29 20 2d 3e 20 28 0a 20 20 20 20 20 20 20 20 20 20 6c 65 74 20 73 it_space(z).->.(...........let.s
14d60 70 61 63 65 5f 73 69 7a 65 20 3d 20 7a 5f 69 6e 74 20 7a 20 69 6e 0a 20 20 20 20 20 20 20 20 20 pace_size.=.z_int.z.in..........
14d80 20 62 69 74 6d 61 74 63 68 20 62 73 20 77 69 74 68 0a 20 20 20 20 20 20 20 20 20 20 7c 20 7b 20 .bitmatch.bs.with...........|.{.
14da0 73 70 61 63 65 20 3a 20 73 70 61 63 65 5f 73 69 7a 65 20 2a 20 38 20 3a 20 62 69 74 73 74 72 69 space.:.space_size.*.8.:.bitstri
14dc0 6e 67 3b 20 62 73 20 3a 20 2d 31 20 3a 20 62 69 74 73 74 72 69 6e 67 20 7d 20 2d 3e 0a 20 20 20 ng;.bs.:.-1.:.bitstring.}.->....
14de0 20 20 20 20 20 20 20 20 20 20 20 69 66 20 69 73 5f 7a 65 72 6f 73 20 73 70 61 63 65 20 28 73 70 ...........if.is_zeros.space.(sp
14e00 61 63 65 5f 73 69 7a 65 20 2a 20 38 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 74 68 65 6e ace_size.*.8)...............then
14e20 20 63 6f 6d 70 61 72 65 5f 64 61 74 61 5f 61 75 78 20 6c 20 62 73 20 28 73 20 2b 20 73 70 61 63 .compare_data_aux.l.bs.(s.+.spac
14e40 65 5f 73 69 7a 65 29 20 73 66 77 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 65 6c 73 65 20 45 e_size).sfw...............else.E
14e60 52 52 28 22 57 72 6f 6e 67 20 73 70 61 63 65 20 22 20 5e 0a 20 20 20 20 20 20 20 20 20 20 20 20 RR("Wrong.space.".^.............
14e80 20 20 20 20 20 20 20 20 20 20 20 20 20 20 73 74 72 69 6e 67 5f 6f 66 5f 69 6e 74 20 28 7a 5f 69 ..............string_of_int.(z_i
14ea0 6e 74 20 7a 29 20 5e 20 22 20 22 20 5e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 nt.z).^.".".^...................
14ec0 20 20 20 20 20 20 20 20 73 74 72 69 6e 67 5f 6f 66 5f 62 69 74 73 74 72 69 6e 67 20 73 70 61 63 ........string_of_bitstring.spac
14ee0 65 29 0a 20 20 20 20 20 20 20 20 20 20 7c 20 7b 20 5f 20 7d 20 2d 3e 20 65 72 72 6f 72 0a 20 20 e)...........|.{._.}.->.error...
14f00 20 20 20 20 20 20 29 0a 20 20 20 20 20 20 20 20 7c 20 49 6e 69 74 5f 61 64 64 72 6f 66 28 69 64 ......).........|.Init_addrof(id
14f20 65 6e 74 2c 20 6f 66 73 29 20 2d 3e 20 28 0a 20 20 20 20 20 20 20 20 20 20 62 69 74 6d 61 74 63 ent,.ofs).->.(...........bitmatc
14f40 68 20 62 73 20 77 69 74 68 0a 20 20 20 20 20 20 20 20 20 20 7c 20 7b 20 76 61 64 64 72 20 3a 20 h.bs.with...........|.{.vaddr.:.
14f60 33 32 20 3a 20 69 6e 74 3b 20 62 73 20 3a 20 2d 31 20 3a 20 62 69 74 73 74 72 69 6e 67 20 7d 20 32.:.int;.bs.:.-1.:.bitstring.}.
14f80 2d 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 73 66 77 0a 20 20 20 20 20 20 20 20 20 20 20 ->...............sfw............
14fa0 20 20 20 3e 3e 3e 20 69 64 6d 61 70 5f 75 6e 69 66 79 20 69 64 65 6e 74 20 28 49 6e 74 33 32 2e ...>>>.idmap_unify.ident.(Int32.
14fc0 73 75 62 20 76 61 64 64 72 20 28 7a 5f 69 6e 74 33 32 20 6f 66 73 29 29 0a 20 20 20 20 20 20 20 sub.vaddr.(z_int32.ofs))........
14fe0 20 20 20 20 20 20 20 3e 3e 3d 20 63 6f 6d 70 61 72 65 5f 64 61 74 61 5f 61 75 78 20 6c 20 62 73 .......>>=.compare_data_aux.l.bs
15000 20 28 73 20 2b 20 34 29 0a 20 20 20 20 20 20 20 20 20 20 7c 20 7b 20 5f 20 7d 20 2d 3e 20 65 72 .(s.+.4)...........|.{._.}.->.er
15020 72 6f 72 0a 20 20 20 20 20 20 20 20 29 0a 20 20 20 20 20 20 20 20 65 6e 64 0a 20 20 69 6e 0a 20 ror.........).........end...in..
15040 20 6c 65 74 20 72 65 63 20 63 6f 6d 70 61 72 65 5f 64 61 74 61 5f 65 6d 70 74 79 20 6c 20 73 20 .let.rec.compare_data_empty.l.s.
15060 28 73 66 77 3a 20 73 5f 66 72 61 6d 65 77 6f 72 6b 29 3a 0a 20 20 20 20 20 20 28 73 5f 66 72 61 (sfw:.s_framework):.......(s_fra
15080 6d 65 77 6f 72 6b 20 2a 20 69 6e 74 29 20 6f 72 5f 65 72 72 20 3d 0a 20 20 20 20 6d 61 74 63 68 mework.*.int).or_err.=.....match
150a0 20 6c 20 77 69 74 68 0a 20 20 20 20 7c 20 5b 5d 20 2d 3e 20 4f 4b 28 73 66 77 2c 20 73 29 0a 20 .l.with.....|.[].->.OK(sfw,.s)..
150c0 20 20 20 7c 20 64 3a 3a 6c 20 2d 3e 0a 20 20 20 20 20 20 20 20 62 65 67 69 6e 20 6d 61 74 63 68 ...|.d::l.->.........begin.match
150e0 20 64 20 77 69 74 68 0a 20 20 20 20 20 20 20 20 7c 20 49 6e 69 74 5f 73 70 61 63 65 28 7a 29 20 .d.with.........|.Init_space(z).
15100 2d 3e 20 63 6f 6d 70 61 72 65 5f 64 61 74 61 5f 65 6d 70 74 79 20 6c 20 28 73 20 2b 20 7a 5f 69 ->.compare_data_empty.l.(s.+.z_i
15120 6e 74 20 7a 29 20 73 66 77 0a 20 20 20 20 20 20 20 20 7c 20 5f 20 2d 3e 20 45 52 52 28 22 45 78 nt.z).sfw.........|._.->.ERR("Ex
15140 70 65 63 74 65 64 20 65 6d 70 74 79 20 64 61 74 61 22 29 0a 20 20 20 20 20 20 20 20 65 6e 64 0a pected.empty.data").........end.
15160 20 20 69 6e 0a 20 20 6d 61 74 63 68 20 6d 61 79 62 65 62 73 20 77 69 74 68 0a 20 20 7c 20 45 6d ..in...match.maybebs.with...|.Em
15180 70 74 79 28 5f 29 20 20 20 20 20 2d 3e 20 63 6f 6d 70 61 72 65 5f 64 61 74 61 5f 65 6d 70 74 79 pty(_).....->.compare_data_empty
151a0 20 6c 20 30 20 73 66 77 0a 20 20 7c 20 4e 6f 6e 45 6d 70 74 79 28 62 73 29 20 2d 3e 20 63 6f 6d .l.0.sfw...|.NonEmpty(bs).->.com
151c0 70 61 72 65 5f 64 61 74 61 5f 61 75 78 20 6c 20 62 73 20 30 20 73 66 77 0a 0a 28 2a 2a 20 43 68 pare_data_aux.l.bs.0.sfw..(**.Ch
151e0 65 63 6b 73 20 74 68 65 20 64 61 74 61 20 73 79 6d 62 6f 6c 20 74 61 62 6c 65 2e 0a 2a 29 0a 6c ecks.the.data.symbol.table..*).l
15200 65 74 20 63 68 65 63 6b 5f 64 61 74 61 5f 73 79 6d 74 61 62 20 69 64 65 6e 74 20 73 79 6d 5f 6e et.check_data_symtab.ident.sym_n
15220 64 78 20 73 69 7a 65 20 73 66 77 20 3d 0a 20 20 6c 65 74 20 65 6c 66 20 3d 20 73 66 77 2e 65 66 dx.size.sfw.=...let.elf.=.sfw.ef
15240 2e 65 6c 66 20 69 6e 0a 20 20 6c 65 74 20 73 79 6d 74 61 62 5f 65 6e 74 5f 73 74 61 72 74 20 3d .elf.in...let.symtab_ent_start.=
15260 20 49 6e 74 33 32 2e 28 0a 20 20 20 20 61 64 64 0a 20 20 20 20 20 20 65 6c 66 2e 65 5f 73 68 64 .Int32.(.....add.......elf.e_shd
15280 72 61 2e 28 65 6c 66 2e 65 5f 73 79 6d 74 61 62 5f 73 6e 64 78 29 2e 73 68 5f 6f 66 66 73 65 74 ra.(elf.e_symtab_sndx).sh_offset
152a0 0a 20 20 20 20 20 20 28 53 61 66 65 33 32 2e 6f 66 5f 69 6e 74 20 28 31 36 20 2a 20 73 79 6d 5f .......(Safe32.of_int.(16.*.sym_
152c0 6e 64 78 29 29 0a 20 20 29 20 69 6e 0a 20 20 6c 65 74 20 73 79 6d 20 3d 20 73 66 77 2e 65 66 2e ndx))...).in...let.sym.=.sfw.ef.
152e0 65 6c 66 2e 65 5f 73 79 6d 74 61 62 2e 28 73 79 6d 5f 6e 64 78 29 20 69 6e 0a 20 20 6c 65 74 20 elf.e_symtab.(sym_ndx).in...let.
15300 61 74 6f 6d 20 3d 20 48 61 73 68 74 62 6c 2e 66 69 6e 64 20 73 66 77 2e 61 74 6f 6d 73 20 69 64 atom.=.Hashtbl.find.sfw.atoms.id
15320 65 6e 74 20 69 6e 0a 20 20 6c 65 74 20 73 65 63 74 69 6f 6e 20 3d 0a 20 20 20 20 6d 61 74 63 68 ent.in...let.section.=.....match
15340 20 61 74 6f 6d 2e 61 5f 73 65 63 74 69 6f 6e 73 20 77 69 74 68 0a 20 20 20 20 7c 20 5b 73 5d 20 .atom.a_sections.with.....|.[s].
15360 2d 3e 20 73 0a 20 20 20 20 7c 20 5f 20 2d 3e 20 53 65 63 74 69 6f 6e 5f 64 61 74 61 20 74 72 75 ->.s.....|._.->.Section_data.tru
15380 65 0a 20 20 69 6e 0a 20 20 73 66 77 0a 20 20 3e 3e 3e 20 28 0a 20 20 20 20 69 66 20 73 79 6d 2e e...in...sfw...>>>.(.....if.sym.
153a0 73 74 5f 73 69 7a 65 20 3d 20 53 61 66 65 33 32 2e 6f 66 5f 69 6e 74 20 73 69 7a 65 0a 20 20 20 st_size.=.Safe32.of_int.size....
153c0 20 74 68 65 6e 20 69 64 0a 20 20 20 20 65 6c 73 65 20 28 0a 20 20 20 20 20 20 73 66 5f 65 66 20 .then.id.....else.(.......sf_ef.
153e0 5e 25 3d 0a 20 20 20 20 20 20 20 20 61 64 64 5f 6c 6f 67 20 28 45 52 52 4f 52 28 0a 20 20 20 20 ^%=.........add_log.(ERROR(.....
15400 20 20 20 20 20 20 22 49 6e 63 6f 72 72 65 63 74 20 73 79 6d 62 6f 6c 20 73 69 7a 65 20 28 22 20 ......"Incorrect.symbol.size.(".
15420 5e 20 73 79 6d 2e 73 74 5f 6e 61 6d 65 20 5e 0a 20 20 20 20 20 20 20 20 20 20 20 20 22 29 3a 20 ^.sym.st_name.^............."):.
15440 65 78 70 65 63 74 65 64 20 22 20 5e 20 73 74 72 69 6e 67 5f 6f 66 5f 69 6e 74 33 32 69 20 73 79 expected.".^.string_of_int32i.sy
15460 6d 2e 73 74 5f 73 69 7a 65 20 5e 0a 20 20 20 20 20 20 20 20 20 20 20 20 22 2c 20 63 6f 75 6e 74 m.st_size.^.............",.count
15480 65 64 3a 20 22 20 5e 20 73 74 72 69 6e 67 5f 6f 66 5f 69 6e 74 20 73 69 7a 65 0a 20 20 20 20 20 ed:.".^.string_of_int.size......
154a0 20 20 20 29 29 0a 20 20 20 20 29 0a 20 20 29 0a 20 20 3e 3e 3e 20 63 68 65 63 6b 5f 73 74 5f 62 ...)).....)...)...>>>.check_st_b
154c0 69 6e 64 20 61 74 6f 6d 20 73 79 6d 0a 20 20 3e 3e 3e 20 28 0a 20 20 20 20 6d 61 74 63 68 20 73 ind.atom.sym...>>>.(.....match.s
154e0 79 6d 2e 73 74 5f 74 79 70 65 20 77 69 74 68 0a 20 20 20 20 7c 20 53 54 54 5f 4f 42 4a 45 43 54 ym.st_type.with.....|.STT_OBJECT
15500 20 2d 3e 20 69 64 0a 20 20 20 20 7c 20 53 54 54 5f 4e 4f 54 59 50 45 20 2d 3e 20 28 73 66 5f 65 .->.id.....|.STT_NOTYPE.->.(sf_e
15520 66 20 5e 25 3d 0a 20 20 20 20 20 20 20 20 61 64 64 5f 6c 6f 67 20 28 57 41 52 4e 49 4e 47 28 22 f.^%=.........add_log.(WARNING("
15540 4d 69 73 73 69 6e 67 20 74 79 70 65 20 66 6f 72 20 73 79 6d 62 6f 6c 20 22 20 5e 20 73 79 6d 2e Missing.type.for.symbol.".^.sym.
15560 73 74 5f 6e 61 6d 65 29 29 0a 20 20 20 20 29 0a 20 20 20 20 7c 20 5f 20 2d 3e 20 28 73 66 5f 65 st_name)).....).....|._.->.(sf_e
15580 66 20 5e 25 3d 0a 20 20 20 20 20 20 20 20 61 64 64 5f 6c 6f 67 20 28 45 52 52 4f 52 28 22 53 79 f.^%=.........add_log.(ERROR("Sy
155a0 6d 62 6f 6c 20 73 68 6f 75 6c 64 20 68 61 76 65 20 74 79 70 65 20 53 54 54 5f 4f 42 4a 45 43 54 mbol.should.have.type.STT_OBJECT
155c0 22 29 29 0a 20 20 20 20 29 0a 20 20 29 0a 20 20 3e 3e 3e 20 28 0a 20 20 20 20 69 66 20 73 79 6d ")).....)...)...>>>.(.....if.sym
155e0 2e 73 74 5f 6f 74 68 65 72 20 3d 20 30 0a 20 20 20 20 74 68 65 6e 20 69 64 0a 20 20 20 20 65 6c .st_other.=.0.....then.id.....el
15600 73 65 20 28 73 66 5f 65 66 20 5e 25 3d 0a 20 20 20 20 20 20 20 20 61 64 64 5f 6c 6f 67 20 28 45 se.(sf_ef.^%=.........add_log.(E
15620 52 52 4f 52 28 22 53 79 6d 62 6f 6c 20 73 68 6f 75 6c 64 20 68 61 76 65 20 73 74 5f 6f 74 68 65 RROR("Symbol.should.have.st_othe
15640 72 20 73 65 74 20 74 6f 20 30 22 29 29 0a 20 20 20 20 29 0a 20 20 29 0a 20 20 3e 3e 3e 20 6d 61 r.set.to.0")).....)...)...>>>.ma
15660 74 63 68 5f 73 65 63 74 69 6f 6e 73 5f 6e 61 6d 65 20 73 65 63 74 69 6f 6e 20 65 6c 66 2e 65 5f tch_sections_name.section.elf.e_
15680 73 68 64 72 61 2e 28 73 79 6d 2e 73 74 5f 73 68 6e 64 78 29 2e 73 68 5f 6e 61 6d 65 0a 20 20 3e shdra.(sym.st_shndx).sh_name...>
156a0 3e 3e 20 28 73 66 5f 65 66 20 5e 25 3d 0a 20 20 20 20 20 20 61 64 64 5f 72 61 6e 67 65 20 73 79 >>.(sf_ef.^%=.......add_range.sy
156c0 6d 74 61 62 5f 65 6e 74 5f 73 74 61 72 74 20 31 36 6c 20 34 20 28 53 79 6d 74 61 62 5f 64 61 74 mtab_ent_start.16l.4.(Symtab_dat
156e0 61 28 73 79 6d 29 29 0a 20 20 29 0a 0a 28 2a 2a 20 43 68 65 63 6b 73 20 61 6c 6c 20 74 68 65 20 a(sym))...)..(**.Checks.all.the.
15700 70 72 6f 67 72 61 6d 20 76 61 72 69 61 62 6c 65 73 2e 0a 2a 29 0a 6c 65 74 20 63 68 65 63 6b 5f program.variables..*).let.check_
15720 64 61 74 61 20 28 70 76 3a 20 28 69 64 65 6e 74 20 2a 20 75 6e 69 74 20 67 6c 6f 62 76 61 72 29 data.(pv:.(ident.*.unit.globvar)
15740 20 6c 69 73 74 29 20 28 73 66 77 3a 20 73 5f 66 72 61 6d 65 77 6f 72 6b 29 0a 20 20 20 20 3a 20 .list).(sfw:.s_framework).....:.
15760 73 5f 66 72 61 6d 65 77 6f 72 6b 20 3d 0a 20 20 6c 65 74 20 70 72 6f 63 65 73 73 5f 6e 64 78 20 s_framework.=...let.process_ndx.
15780 69 64 65 6e 74 20 6c 64 61 74 61 20 73 66 77 20 6e 64 78 20 3d 0a 20 20 20 20 6c 65 74 20 65 6c ident.ldata.sfw.ndx.=.....let.el
157a0 66 20 3d 20 28 73 66 77 20 7c 2e 20 73 66 5f 65 66 29 2e 65 6c 66 20 69 6e 0a 20 20 20 20 6c 65 f.=.(sfw.|..sf_ef).elf.in.....le
157c0 74 20 73 79 6d 20 3d 20 65 6c 66 2e 65 5f 73 79 6d 74 61 62 2e 28 6e 64 78 29 20 69 6e 0a 20 20 t.sym.=.elf.e_symtab.(ndx).in...
157e0 20 20 6c 65 74 20 73 79 6d 5f 76 61 64 64 72 20 3d 20 73 79 6d 2e 73 74 5f 76 61 6c 75 65 20 69 ..let.sym_vaddr.=.sym.st_value.i
15800 6e 0a 20 20 20 20 6c 65 74 20 73 79 6d 5f 73 69 7a 65 20 3d 20 73 79 6d 2e 73 74 5f 73 69 7a 65 n.....let.sym_size.=.sym.st_size
15820 20 69 6e 0a 20 20 20 20 6c 65 74 20 73 79 6d 5f 73 6e 64 78 20 3d 20 73 79 6d 2e 73 74 5f 73 68 .in.....let.sym_sndx.=.sym.st_sh
15840 6e 64 78 20 69 6e 0a 20 20 20 20 6c 65 74 20 73 79 6d 5f 62 73 20 3d 0a 20 20 20 20 20 20 6d 61 ndx.in.....let.sym_bs.=.......ma
15860 74 63 68 20 65 6c 66 2e 65 5f 73 68 64 72 61 2e 28 73 79 6d 5f 73 6e 64 78 29 2e 73 68 5f 74 79 tch.elf.e_shdra.(sym_sndx).sh_ty
15880 70 65 20 77 69 74 68 0a 20 20 20 20 20 20 7c 20 53 48 54 5f 4e 4f 42 49 54 53 20 2d 3e 0a 20 20 pe.with.......|.SHT_NOBITS.->...
158a0 20 20 20 20 20 20 20 20 45 6d 70 74 79 28 53 61 66 65 2e 28 6f 66 5f 69 6e 74 33 32 20 73 79 6d ........Empty(Safe.(of_int32.sym
158c0 2e 73 74 5f 73 69 7a 65 20 2a 20 38 29 29 0a 20 20 20 20 20 20 7c 20 53 48 54 5f 50 52 4f 47 42 .st_size.*.8)).......|.SHT_PROGB
158e0 49 54 53 20 2d 3e 0a 20 20 20 20 20 20 20 20 20 20 4e 6f 6e 45 6d 70 74 79 28 62 69 74 73 74 72 ITS.->...........NonEmpty(bitstr
15900 69 6e 67 5f 61 74 5f 76 61 64 64 72 5f 6e 6f 73 69 7a 65 20 65 6c 66 20 73 79 6d 5f 73 6e 64 78 ing_at_vaddr_nosize.elf.sym_sndx
15920 20 73 79 6d 5f 76 61 64 64 72 29 0a 20 20 20 20 20 20 7c 20 5f 20 2d 3e 20 61 73 73 65 72 74 20 .sym_vaddr).......|._.->.assert.
15940 66 61 6c 73 65 0a 20 20 20 20 69 6e 0a 20 20 20 20 6c 65 74 20 72 65 73 20 3d 0a 20 20 20 20 20 false.....in.....let.res.=......
15960 20 73 66 77 0a 20 20 20 20 20 20 3e 3e 3e 20 28 73 66 5f 65 66 20 5e 25 3d 20 61 64 64 5f 6c 6f .sfw.......>>>.(sf_ef.^%=.add_lo
15980 67 20 28 44 45 42 55 47 28 22 20 20 50 72 6f 63 65 73 73 69 6e 67 20 64 61 74 61 3a 20 22 20 5e g.(DEBUG("..Processing.data:.".^
159a0 20 73 79 6d 2e 73 74 5f 6e 61 6d 65 29 29 29 0a 20 20 20 20 20 20 3e 3e 3e 20 63 6f 6d 70 61 72 .sym.st_name))).......>>>.compar
159c0 65 5f 64 61 74 61 20 6c 64 61 74 61 20 73 79 6d 5f 62 73 20 69 6e 0a 20 20 20 20 6d 61 74 63 68 e_data.ldata.sym_bs.in.....match
159e0 20 72 65 73 20 77 69 74 68 0a 20 20 20 20 7c 20 45 52 52 28 73 29 20 2d 3e 20 45 52 52 28 73 29 .res.with.....|.ERR(s).->.ERR(s)
15a00 0a 20 20 20 20 7c 20 4f 4b 28 73 66 77 2c 20 73 69 7a 65 29 20 2d 3e 0a 20 20 20 20 20 20 20 20 .....|.OK(sfw,.size).->.........
15a20 6c 65 74 20 73 79 6d 5f 73 68 64 72 20 3d 20 28 73 66 77 20 7c 2e 20 73 66 5f 65 66 29 2e 65 6c let.sym_shdr.=.(sfw.|..sf_ef).el
15a40 66 2e 65 5f 73 68 64 72 61 2e 28 73 79 6d 5f 73 6e 64 78 29 20 69 6e 0a 20 20 20 20 20 20 20 20 f.e_shdra.(sym_sndx).in.........
15a60 6c 65 74 20 73 79 6d 5f 6f 66 73 5f 6c 6f 63 61 6c 20 3d 20 49 6e 74 33 32 2e 73 75 62 20 73 79 let.sym_ofs_local.=.Int32.sub.sy
15a80 6d 5f 76 61 64 64 72 20 73 79 6d 5f 73 68 64 72 2e 73 68 5f 61 64 64 72 20 69 6e 0a 20 20 20 20 m_vaddr.sym_shdr.sh_addr.in.....
15aa0 20 20 20 20 6c 65 74 20 73 78 6e 5f 6f 66 73 20 3d 20 73 79 6d 5f 73 68 64 72 2e 73 68 5f 6f 66 ....let.sxn_ofs.=.sym_shdr.sh_of
15ac0 66 73 65 74 20 69 6e 0a 20 20 20 20 20 20 20 20 6c 65 74 20 73 79 6d 5f 62 65 67 69 6e 20 3d 20 fset.in.........let.sym_begin.=.
15ae0 49 6e 74 33 32 2e 61 64 64 20 73 78 6e 5f 6f 66 73 20 73 79 6d 5f 6f 66 73 5f 6c 6f 63 61 6c 20 Int32.add.sxn_ofs.sym_ofs_local.
15b00 69 6e 0a 20 20 20 20 20 20 20 20 6c 65 74 20 61 6c 69 67 6e 20 3d 0a 20 20 20 20 20 20 20 20 20 in.........let.align.=..........
15b20 20 62 65 67 69 6e 20 6d 61 74 63 68 20 28 48 61 73 68 74 62 6c 2e 66 69 6e 64 20 73 66 77 2e 61 .begin.match.(Hashtbl.find.sfw.a
15b40 74 6f 6d 73 20 69 64 65 6e 74 29 2e 61 5f 61 6c 69 67 6e 6d 65 6e 74 20 77 69 74 68 0a 20 20 20 toms.ident).a_alignment.with....
15b60 20 20 20 20 20 20 20 7c 20 4e 6f 6e 65 20 2d 3e 20 30 0a 20 20 20 20 20 20 20 20 20 20 7c 20 53 .......|.None.->.0...........|.S
15b80 6f 6d 65 28 61 29 20 2d 3e 20 61 0a 20 20 20 20 20 20 20 20 20 20 65 6e 64 0a 20 20 20 20 20 20 ome(a).->.a...........end.......
15ba0 20 20 69 6e 0a 20 20 20 20 20 20 20 20 73 66 77 2e 65 66 2e 63 68 6b 64 5f 64 61 74 61 5f 73 79 ..in.........sfw.ef.chkd_data_sy
15bc0 6d 73 2e 28 6e 64 78 29 20 3c 2d 20 74 72 75 65 3b 0a 20 20 20 20 20 20 20 20 73 66 77 0a 20 20 ms.(ndx).<-.true;.........sfw...
15be0 20 20 20 20 20 20 3e 3e 3e 20 28 0a 20 20 20 20 20 20 20 20 20 20 62 65 67 69 6e 20 6d 61 74 63 ......>>>.(...........begin.matc
15c00 68 20 73 79 6d 5f 73 68 64 72 2e 73 68 5f 74 79 70 65 20 77 69 74 68 0a 20 20 20 20 20 20 20 20 h.sym_shdr.sh_type.with.........
15c20 20 20 7c 20 53 48 54 5f 4e 4f 42 49 54 53 20 2d 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ..|.SHT_NOBITS.->...............
15c40 69 64 20 28 2a 20 54 68 65 73 65 20 6f 63 63 75 70 79 20 6e 6f 20 73 70 61 63 65 2c 20 66 6f 72 id.(*.These.occupy.no.space,.for
15c60 20 6e 6f 77 20 77 65 20 6a 75 73 74 20 66 6f 72 67 65 74 20 74 68 65 6d 20 2a 29 0a 20 20 20 20 .now.we.just.forget.them.*).....
15c80 20 20 20 20 20 20 7c 20 5f 20 2d 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 73 66 5f 65 66 ......|._.->...............sf_ef
15ca0 20 5e 25 3d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 61 64 64 5f 72 61 6e 67 65 20 73 79 6d .^%=...............add_range.sym
15cc0 5f 62 65 67 69 6e 20 73 79 6d 5f 73 69 7a 65 20 61 6c 69 67 6e 20 28 44 61 74 61 5f 73 79 6d 62 _begin.sym_size.align.(Data_symb
15ce0 6f 6c 28 73 79 6d 29 29 0a 20 20 20 20 20 20 20 20 20 20 65 6e 64 0a 20 20 20 20 20 20 20 20 29 ol(sym))...........end.........)
15d00 0a 20 20 20 20 20 20 20 20 3e 3e 3e 20 28 0a 20 20 20 20 20 20 20 20 20 20 69 66 20 6e 6f 74 20 .........>>>.(...........if.not.
15d20 28 69 73 5f 77 65 6c 6c 5f 61 6c 69 67 6e 65 64 20 73 79 6d 5f 6f 66 73 5f 6c 6f 63 61 6c 20 61 (is_well_aligned.sym_ofs_local.a
15d40 6c 69 67 6e 29 0a 20 20 20 20 20 20 20 20 20 20 74 68 65 6e 20 28 0a 20 20 20 20 20 20 20 20 20 lign)...........then.(..........
15d60 20 20 20 73 66 5f 65 66 20 5e 25 3d 20 61 64 64 5f 6c 6f 67 20 28 45 52 52 4f 52 28 0a 20 20 20 ...sf_ef.^%=.add_log.(ERROR(....
15d80 20 20 20 20 20 20 20 20 20 20 20 22 53 79 6d 62 6f 6c 20 6e 6f 74 20 63 6f 72 72 65 63 74 6c 79 ..........."Symbol.not.correctly
15da0 20 61 6c 69 67 6e 65 64 20 69 6e 20 74 68 65 20 45 4c 46 20 66 69 6c 65 22 0a 20 20 20 20 20 20 .aligned.in.the.ELF.file".......
15dc0 20 20 20 20 20 20 29 29 0a 20 20 20 20 20 20 20 20 20 20 29 0a 20 20 20 20 20 20 20 20 20 20 65 ......))...........)...........e
15de0 6c 73 65 20 69 64 0a 20 20 20 20 20 20 20 20 29 0a 20 20 20 20 20 20 20 20 3e 3e 3e 20 63 68 65 lse.id.........).........>>>.che
15e00 63 6b 5f 64 61 74 61 5f 73 79 6d 74 61 62 20 69 64 65 6e 74 20 6e 64 78 20 73 69 7a 65 0a 20 20 ck_data_symtab.ident.ndx.size...
15e20 20 20 20 20 20 20 3e 3e 3e 20 28 66 75 6e 20 73 66 77 20 2d 3e 20 4f 4b 28 73 66 77 29 29 0a 20 ......>>>.(fun.sfw.->.OK(sfw))..
15e40 20 69 6e 0a 20 20 6c 65 74 20 63 68 65 63 6b 5f 64 61 74 61 5f 61 75 78 20 73 66 77 20 69 67 20 .in...let.check_data_aux.sfw.ig.
15e60 3d 0a 20 20 20 20 6c 65 74 20 28 69 64 65 6e 74 2c 20 67 76 29 20 3d 20 69 67 20 69 6e 0a 20 20 =.....let.(ident,.gv).=.ig.in...
15e80 20 20 6c 65 74 20 69 6e 69 74 5f 64 61 74 61 20 3d 20 67 76 2e 67 76 61 72 5f 69 6e 69 74 20 69 ..let.init_data.=.gv.gvar_init.i
15ea0 6e 0a 20 20 20 20 6c 65 74 20 69 64 65 6e 74 5f 6e 64 78 65 73 20 3d 20 50 6f 73 4d 61 70 2e 66 n.....let.ident_ndxes.=.PosMap.f
15ec0 69 6e 64 20 69 64 65 6e 74 20 73 66 77 2e 69 64 65 6e 74 5f 74 6f 5f 73 79 6d 5f 6e 64 78 20 69 ind.ident.sfw.ident_to_sym_ndx.i
15ee0 6e 0a 20 20 20 20 28 2a 70 72 69 6e 74 5f 65 6e 64 6c 69 6e 65 20 28 22 43 61 6e 64 69 64 61 74 n.....(*print_endline.("Candidat
15f00 65 73 3a 20 22 20 5e 20 73 74 72 69 6e 67 5f 6f 66 5f 6c 69 73 74 20 69 64 20 22 2c 20 22 0a 20 es:.".^.string_of_list.id.",."..
15f20 20 20 20 20 20 28 4c 69 73 74 2e 6d 61 70 0a 20 20 20 20 20 20 28 66 75 6e 20 6e 64 78 20 2d 3e .....(List.map.......(fun.ndx.->
15f40 20 66 77 2e 65 6c 66 2e 65 5f 73 79 6d 74 61 62 2e 28 6e 64 78 29 2e 73 74 5f 6e 61 6d 65 29 0a .fw.elf.e_symtab.(ndx).st_name).
15f60 20 20 20 20 20 20 69 64 65 6e 74 5f 6e 64 78 65 73 29 29 3b 2a 29 0a 20 20 20 20 6c 65 74 20 72 ......ident_ndxes));*).....let.r
15f80 65 73 75 6c 74 73 20 3d 20 4c 69 73 74 2e 6d 61 70 20 28 70 72 6f 63 65 73 73 5f 6e 64 78 20 69 esults.=.List.map.(process_ndx.i
15fa0 64 65 6e 74 20 69 6e 69 74 5f 64 61 74 61 20 73 66 77 29 20 69 64 65 6e 74 5f 6e 64 78 65 73 20 dent.init_data.sfw).ident_ndxes.
15fc0 69 6e 0a 20 20 20 20 6c 65 74 20 73 75 63 63 65 73 73 65 73 20 3d 20 66 69 6c 74 65 72 5f 6f 6b in.....let.successes.=.filter_ok
15fe0 20 72 65 73 75 6c 74 73 20 69 6e 0a 20 20 20 20 6d 61 74 63 68 20 73 75 63 63 65 73 73 65 73 20 .results.in.....match.successes.
16000 77 69 74 68 0a 20 20 20 20 7c 20 5b 5d 20 2d 3e 0a 20 20 20 20 20 20 20 20 73 66 77 0a 20 20 20 with.....|.[].->.........sfw....
16020 20 20 20 20 20 3e 3e 3e 20 73 66 5f 65 66 20 5e 25 3d 0a 20 20 20 20 20 20 20 20 61 64 64 5f 6c .....>>>.sf_ef.^%=.........add_l
16040 6f 67 20 28 45 52 52 4f 52 28 0a 20 20 20 20 20 20 20 20 20 20 22 4e 6f 20 6d 61 74 63 68 69 6e og.(ERROR(..........."No.matchin
16060 67 20 64 61 74 61 20 73 65 67 6d 65 6e 74 20 61 6d 6f 6e 67 20 63 61 6e 64 69 64 61 74 65 73 20 g.data.segment.among.candidates.
16080 5b 22 20 5e 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 73 74 72 69 6e 67 5f 6f 66 5f 6c 69 73 74 [".^.............(string_of_list
160a0 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 66 75 6e 20 6e 64 78 20 2d 3e 20 73 66 77 2e ................(fun.ndx.->.sfw.
160c0 65 66 2e 65 6c 66 2e 65 5f 73 79 6d 74 61 62 2e 28 6e 64 78 29 2e 73 74 5f 6e 61 6d 65 29 0a 20 ef.elf.e_symtab.(ndx).st_name)..
160e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 2c 20 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 ..............",."..............
16100 20 20 69 64 65 6e 74 5f 6e 64 78 65 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 29 20 5e 0a 20 20 ..ident_ndxes.............).^...
16120 20 20 20 20 20 20 20 20 20 20 22 5d 2c 20 45 72 72 6f 72 73 3a 20 5b 22 20 5e 0a 20 20 20 20 20 .........."],.Errors:.[".^......
16140 20 20 20 20 20 20 20 73 74 72 69 6e 67 5f 6f 66 5f 6c 69 73 74 0a 20 20 20 20 20 20 20 20 20 20 .......string_of_list...........
16160 20 20 28 66 75 6e 63 74 69 6f 6e 20 4f 4b 28 5f 29 20 2d 3e 20 22 22 20 7c 20 45 52 52 28 73 29 ..(function.OK(_).->."".|.ERR(s)
16180 20 2d 3e 20 73 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 22 2c 20 22 0a 20 20 20 20 20 20 20 20 .->.s).............",.".........
161a0 20 20 20 20 28 4c 69 73 74 2e 66 69 6c 74 65 72 20 28 66 75 6e 63 74 69 6f 6e 20 45 52 52 28 5f ....(List.filter.(function.ERR(_
161c0 29 20 2d 3e 20 74 72 75 65 20 7c 20 5f 20 2d 3e 20 66 61 6c 73 65 29 20 72 65 73 75 6c 74 73 29 ).->.true.|._.->.false).results)
161e0 0a 20 20 20 20 20 20 20 20 29 29 0a 20 20 20 20 7c 20 5b 73 66 77 5d 20 2d 3e 20 73 66 77 0a 20 .........)).....|.[sfw].->.sfw..
16200 20 20 20 7c 20 66 77 73 20 2d 3e 0a 20 20 20 20 20 20 20 20 73 66 77 0a 20 20 20 20 20 20 20 20 ...|.fws.->.........sfw.........
16220 3e 3e 3e 20 73 66 5f 65 66 20 5e 25 3d 20 61 64 64 5f 6c 6f 67 20 28 45 52 52 4f 52 28 22 4d 75 >>>.sf_ef.^%=.add_log.(ERROR("Mu
16240 6c 74 69 70 6c 65 20 6d 61 74 63 68 69 6e 67 20 64 61 74 61 20 73 65 67 6d 65 6e 74 73 21 22 29 ltiple.matching.data.segments!")
16260 29 0a 20 20 69 6e 0a 20 20 4c 69 73 74 2e 66 6f 6c 64 5f 6c 65 66 74 20 63 68 65 63 6b 5f 64 61 )...in...List.fold_left.check_da
16280 74 61 5f 61 75 78 20 73 66 77 0a 20 20 20 20 28 2a 20 45 6d 70 74 79 20 6c 69 73 74 73 20 6d 65 ta_aux.sfw.....(*.Empty.lists.me
162a0 61 6e 20 74 68 65 20 73 79 6d 62 6f 6c 20 69 73 20 65 78 74 65 72 6e 61 6c 2c 20 6e 6f 20 6e 65 an.the.symbol.is.external,.no.ne
162c0 65 64 20 66 6f 72 20 63 68 65 63 6b 20 2a 29 0a 20 20 20 20 28 4c 69 73 74 2e 66 69 6c 74 65 72 ed.for.check.*).....(List.filter
162e0 20 28 66 75 6e 20 28 5f 2c 20 67 76 29 20 2d 3e 20 67 76 2e 67 76 61 72 5f 69 6e 69 74 20 3c 3e .(fun.(_,.gv).->.gv.gvar_init.<>
16300 20 5b 5d 29 20 70 76 29 0a 0a 28 2a 2a 20 43 68 65 63 6b 73 20 74 68 61 74 20 65 76 65 72 79 74 .[]).pv)..(**.Checks.that.everyt
16320 68 69 6e 67 20 74 68 61 74 20 68 61 73 20 62 65 65 6e 20 61 73 73 69 6d 69 6c 65 64 20 61 73 20 hing.that.has.been.assimiled.as.
16340 61 20 73 74 75 62 20 64 75 72 69 6e 67 20 63 68 65 63 6b 73 0a 20 20 20 20 69 6e 64 65 65 64 20 a.stub.during.checks.....indeed.
16360 6c 6f 6f 6b 73 20 6c 69 6b 65 20 61 20 73 74 75 62 2e 0a 2a 29 0a 6c 65 74 20 63 68 65 63 6b 5f looks.like.a.stub..*).let.check_
16380 73 74 75 62 73 20 73 66 77 20 3d 0a 20 20 6c 65 74 20 63 68 65 63 6b 20 63 6f 6e 64 20 6d 73 67 stubs.sfw.=...let.check.cond.msg
163a0 20 73 66 77 20 3d 0a 20 20 20 20 73 66 77 0a 20 20 20 20 3e 3e 3e 20 28 69 66 20 63 6f 6e 64 20 .sfw.=.....sfw.....>>>.(if.cond.
163c0 74 68 65 6e 20 69 64 20 65 6c 73 65 20 28 73 66 5f 65 66 20 5e 25 3d 20 61 64 64 5f 6c 6f 67 20 then.id.else.(sf_ef.^%=.add_log.
163e0 28 45 52 52 4f 52 28 6d 73 67 29 29 29 29 0a 20 20 69 6e 0a 20 20 6c 65 74 20 63 68 65 63 6b 5f (ERROR(msg))))...in...let.check_
16400 65 71 20 6d 73 67 20 61 20 62 20 3d 20 63 68 65 63 6b 20 28 61 20 3d 20 62 29 20 6d 73 67 20 69 eq.msg.a.b.=.check.(a.=.b).msg.i
16420 6e 0a 20 20 6c 65 74 20 6d 61 74 63 68 5f 62 6f 6f 6c 73 20 3d 20 63 68 65 63 6b 5f 65 71 20 22 n...let.match_bools.=.check_eq."
16440 6d 61 74 63 68 5f 62 6f 6f 6c 73 22 20 69 6e 0a 20 20 6c 65 74 20 6d 61 74 63 68 5f 69 6e 74 73 match_bools".in...let.match_ints
16460 20 3d 20 63 68 65 63 6b 5f 65 71 20 22 6d 61 74 63 68 5f 69 6e 74 73 22 20 69 6e 0a 20 20 6c 65 .=.check_eq."match_ints".in...le
16480 74 20 63 68 65 63 6b 5f 73 74 75 62 20 69 64 65 6e 74 20 76 61 64 64 72 20 73 66 77 20 3d 0a 20 t.check_stub.ident.vaddr.sfw.=..
164a0 20 20 20 6c 65 74 20 66 75 6e 64 65 66 20 3d 20 4c 69 73 74 2e 66 69 6e 64 20 28 66 75 6e 20 28 ...let.fundef.=.List.find.(fun.(
164c0 69 2c 20 5f 29 20 2d 3e 20 69 20 3d 20 69 64 65 6e 74 29 20 73 66 77 2e 70 72 6f 67 72 61 6d 2e i,._).->.i.=.ident).sfw.program.
164e0 70 72 6f 67 5f 66 75 6e 63 74 0a 20 20 20 20 69 6e 0a 20 20 20 20 6c 65 74 20 65 6c 66 20 3d 20 prog_funct.....in.....let.elf.=.
16500 73 66 77 2e 65 66 2e 65 6c 66 20 69 6e 0a 20 20 20 20 6c 65 74 20 73 74 75 62 5f 65 63 6f 64 65 sfw.ef.elf.in.....let.stub_ecode
16520 20 3d 20 66 72 6f 6d 5f 73 6f 6d 65 20 28 63 6f 64 65 5f 61 74 5f 76 61 64 64 72 20 65 6c 66 20 .=.from_some.(code_at_vaddr.elf.
16540 76 61 64 64 72 20 32 29 20 69 6e 0a 20 20 20 20 6c 65 74 20 73 74 75 62 5f 73 6e 64 78 20 3d 20 vaddr.2).in.....let.stub_sndx.=.
16560 66 72 6f 6d 5f 73 6f 6d 65 20 28 73 65 63 74 69 6f 6e 5f 61 74 5f 76 61 64 64 72 20 65 6c 66 20 from_some.(section_at_vaddr.elf.
16580 76 61 64 64 72 29 20 69 6e 0a 20 20 20 20 6c 65 74 20 73 74 75 62 5f 6f 66 66 73 65 74 20 3d 20 vaddr).in.....let.stub_offset.=.
165a0 70 68 79 73 69 63 61 6c 5f 6f 66 66 73 65 74 5f 6f 66 5f 76 61 64 64 72 20 65 6c 66 20 73 74 75 physical_offset_of_vaddr.elf.stu
165c0 62 5f 73 6e 64 78 20 76 61 64 64 72 20 69 6e 0a 20 20 20 20 62 65 67 69 6e 20 6d 61 74 63 68 20 b_sndx.vaddr.in.....begin.match.
165e0 66 75 6e 64 65 66 20 77 69 74 68 0a 20 20 20 20 7c 20 28 5f 2c 20 45 78 74 65 72 6e 61 6c 28 45 fundef.with.....|.(_,.External(E
16600 46 5f 65 78 74 65 72 6e 61 6c 28 64 65 73 74 5f 69 64 65 6e 74 2c 20 5f 29 20 61 73 20 65 66 29 F_external(dest_ident,._).as.ef)
16620 29 20 2d 3e 0a 20 20 20 20 20 20 20 20 6c 65 74 20 61 72 67 73 20 3d 20 28 65 66 5f 73 69 67 20 ).->.........let.args.=.(ef_sig.
16640 65 66 29 2e 73 69 67 5f 61 72 67 73 20 69 6e 0a 20 20 20 20 20 20 20 20 69 66 20 4c 69 73 74 2e ef).sig_args.in.........if.List.
16660 6d 65 6d 20 54 66 6c 6f 61 74 20 61 72 67 73 0a 20 20 20 20 20 20 20 20 74 68 65 6e 0a 20 20 20 mem.Tfloat.args.........then....
16680 20 20 20 20 20 20 20 62 65 67 69 6e 20 6d 61 74 63 68 20 73 74 75 62 5f 65 63 6f 64 65 20 77 69 .......begin.match.stub_ecode.wi
166a0 74 68 0a 20 20 20 20 20 20 20 20 20 20 7c 20 20 20 43 52 45 51 56 28 63 72 62 44 2c 20 63 72 62 th...........|...CREQV(crbD,.crb
166c0 41 2c 20 63 72 62 42 29 20 3a 3a 20 28 2a 20 76 61 64 64 72 20 2a 29 0a 20 20 20 20 20 20 20 20 A,.crbB).::.(*.vaddr.*).........
166e0 20 20 20 20 20 20 42 78 28 6c 69 2c 20 61 61 2c 20 6c 6b 29 20 20 20 20 20 20 20 20 20 20 3a 3a ......Bx(li,.aa,.lk)..........::
16700 20 28 2a 20 76 61 64 64 72 20 2b 20 34 20 2a 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 5b .(*.vaddr.+.4.*)...............[
16720 5d 20 2d 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6c 65 74 20 64 65 73 74 5f 76 61 64 64 ].->...............let.dest_vadd
16740 72 20 3d 20 49 6e 74 33 32 2e 28 61 64 64 20 28 61 64 64 20 76 61 64 64 72 20 34 6c 29 20 28 6d r.=.Int32.(add.(add.vaddr.4l).(m
16760 75 6c 20 34 6c 20 28 65 78 74 73 20 6c 69 29 29 29 20 69 6e 0a 20 20 20 20 20 20 20 20 20 20 20 ul.4l.(exts.li))).in............
16780 20 20 20 62 65 67 69 6e 20 6d 61 74 63 68 20 69 64 6d 61 70 5f 75 6e 69 66 79 20 64 65 73 74 5f ...begin.match.idmap_unify.dest_
167a0 69 64 65 6e 74 20 64 65 73 74 5f 76 61 64 64 72 20 73 66 77 20 77 69 74 68 0a 20 20 20 20 20 20 ident.dest_vaddr.sfw.with.......
167c0 20 20 20 20 20 20 20 20 7c 20 45 52 52 28 73 29 20 2d 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 ........|.ERR(s).->.............
167e0 20 20 20 20 20 20 73 66 77 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3e 3e 3e 20 ......sfw...................>>>.
16800 28 73 66 5f 65 66 20 5e 25 3d 20 61 64 64 5f 6c 6f 67 20 28 45 52 52 4f 52 28 0a 20 20 20 20 20 (sf_ef.^%=.add_log.(ERROR(......
16820 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 43 6f 75 6c 64 6e 27 74 20 6d 61 74 63 68 20 73 ..............."Couldn't.match.s
16840 74 75 62 2c 20 22 20 5e 20 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 29 29 29 tub,.".^.s...................)))
16860 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7c 20 4f 4b 28 73 66 77 29 20 2d 3e 0a 20 20 20 20 ...............|.OK(sfw).->.....
16880 20 20 20 20 20 20 20 20 20 20 20 20 20 20 73 66 77 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ..............sfw...............
168a0 20 20 20 20 3e 3e 3e 20 6d 61 74 63 68 5f 69 6e 74 73 20 36 20 63 72 62 44 0a 20 20 20 20 20 20 ....>>>.match_ints.6.crbD.......
168c0 20 20 20 20 20 20 20 20 20 20 20 20 3e 3e 3e 20 6d 61 74 63 68 5f 69 6e 74 73 20 36 20 63 72 62 ............>>>.match_ints.6.crb
168e0 41 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3e 3e 3e 20 6d 61 74 63 68 5f 69 6e A...................>>>.match_in
16900 74 73 20 36 20 63 72 62 42 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3e 3e 3e 20 ts.6.crbB...................>>>.
16920 6d 61 74 63 68 5f 62 6f 6f 6c 73 20 66 61 6c 73 65 20 61 61 0a 20 20 20 20 20 20 20 20 20 20 20 match_bools.false.aa............
16940 20 20 20 20 20 20 20 3e 3e 3e 20 6d 61 74 63 68 5f 62 6f 6f 6c 73 20 66 61 6c 73 65 20 6c 6b 0a .......>>>.match_bools.false.lk.
16960 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3e 3e 3e 20 28 73 66 5f 65 66 20 5e 25 3d ..................>>>.(sf_ef.^%=
16980 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 61 64 64 5f 72 61 6e 67 65 .......................add_range
169a0 20 73 74 75 62 5f 6f 66 66 73 65 74 20 38 6c 20 34 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .stub_offset.8l.4...............
169c0 20 20 20 20 20 20 20 20 20 20 28 53 74 75 62 28 48 61 73 68 74 62 6c 2e 66 69 6e 64 20 73 66 77 ..........(Stub(Hashtbl.find.sfw
169e0 2e 69 64 65 6e 74 5f 74 6f 5f 6e 61 6d 65 20 69 64 65 6e 74 29 29 0a 20 20 20 20 20 20 20 20 20 .ident_to_name.ident))..........
16a00 20 20 20 20 20 20 20 20 20 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 65 6e 64 0a 20 20 20 .........)...............end....
16a20 20 20 20 20 20 20 20 7c 20 5f 20 2d 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 73 66 77 0a .......|._.->...............sfw.
16a40 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3e 3e 3e 20 28 73 66 5f 65 66 20 5e 25 3d 20 61 64 64 ..............>>>.(sf_ef.^%=.add
16a60 5f 6c 6f 67 20 28 45 52 52 4f 52 28 22 43 6f 75 6c 64 6e 27 74 20 6d 61 74 63 68 20 73 74 75 62 _log.(ERROR("Couldn't.match.stub
16a80 22 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 65 6e 64 0a 20 20 20 20 20 20 20 20 65 6c 73 65 0a ")))...........end.........else.
16aa0 20 20 20 20 20 20 20 20 20 20 62 65 67 69 6e 20 6d 61 74 63 68 20 73 74 75 62 5f 65 63 6f 64 65 ..........begin.match.stub_ecode
16ac0 20 77 69 74 68 0a 20 20 20 20 20 20 20 20 20 20 7c 20 20 20 43 52 58 4f 52 28 63 72 62 44 2c 20 .with...........|...CRXOR(crbD,.
16ae0 63 72 62 41 2c 20 63 72 62 42 29 20 3a 3a 20 28 2a 20 76 61 64 64 72 20 2a 29 0a 20 20 20 20 20 crbA,.crbB).::.(*.vaddr.*)......
16b00 20 20 20 20 20 20 20 20 20 42 78 28 6c 69 2c 20 61 61 2c 20 6c 6b 29 20 20 20 20 20 20 20 20 20 .........Bx(li,.aa,.lk).........
16b20 20 3a 3a 20 28 2a 20 76 61 64 64 72 20 2b 20 34 20 2a 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 .::.(*.vaddr.+.4.*).............
16b40 20 20 5b 5d 20 2d 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6c 65 74 20 64 65 73 74 5f 76 ..[].->...............let.dest_v
16b60 61 64 64 72 20 3d 20 49 6e 74 33 32 2e 28 61 64 64 20 28 61 64 64 20 76 61 64 64 72 20 34 6c 29 addr.=.Int32.(add.(add.vaddr.4l)
16b80 20 28 6d 75 6c 20 34 6c 20 28 65 78 74 73 20 6c 69 29 29 29 20 69 6e 0a 20 20 20 20 20 20 20 20 .(mul.4l.(exts.li))).in.........
16ba0 20 20 20 20 20 20 62 65 67 69 6e 20 6d 61 74 63 68 20 69 64 6d 61 70 5f 75 6e 69 66 79 20 64 65 ......begin.match.idmap_unify.de
16bc0 73 74 5f 69 64 65 6e 74 20 64 65 73 74 5f 76 61 64 64 72 20 73 66 77 20 77 69 74 68 0a 20 20 20 st_ident.dest_vaddr.sfw.with....
16be0 20 20 20 20 20 20 20 20 20 20 20 7c 20 45 52 52 28 73 29 20 2d 3e 0a 20 20 20 20 20 20 20 20 20 ...........|.ERR(s).->..........
16c00 20 20 20 20 20 20 20 20 20 73 66 77 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3e .........sfw...................>
16c20 3e 3e 20 28 73 66 5f 65 66 20 5e 25 3d 20 61 64 64 5f 6c 6f 67 20 28 45 52 52 4f 52 28 0a 20 20 >>.(sf_ef.^%=.add_log.(ERROR(...
16c40 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 43 6f 75 6c 64 6e 27 74 20 6d 61 74 63 .................."Couldn't.matc
16c60 68 20 73 74 75 62 2c 20 22 20 5e 20 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 h.stub,.".^.s...................
16c80 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7c 20 4f 4b 28 73 66 77 29 20 2d 3e 0a 20 )))...............|.OK(sfw).->..
16ca0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 73 66 77 0a 20 20 20 20 20 20 20 20 20 20 20 .................sfw............
16cc0 20 20 20 20 20 20 20 3e 3e 3e 20 6d 61 74 63 68 5f 69 6e 74 73 20 36 20 63 72 62 44 0a 20 20 20 .......>>>.match_ints.6.crbD....
16ce0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3e 3e 3e 20 6d 61 74 63 68 5f 69 6e 74 73 20 36 20 ...............>>>.match_ints.6.
16d00 63 72 62 41 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3e 3e 3e 20 6d 61 74 63 68 crbA...................>>>.match
16d20 5f 69 6e 74 73 20 36 20 63 72 62 42 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3e _ints.6.crbB...................>
16d40 3e 3e 20 6d 61 74 63 68 5f 62 6f 6f 6c 73 20 66 61 6c 73 65 20 61 61 0a 20 20 20 20 20 20 20 20 >>.match_bools.false.aa.........
16d60 20 20 20 20 20 20 20 20 20 20 3e 3e 3e 20 6d 61 74 63 68 5f 62 6f 6f 6c 73 20 66 61 6c 73 65 20 ..........>>>.match_bools.false.
16d80 6c 6b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3e 3e 3e 20 28 73 66 5f 65 66 20 lk...................>>>.(sf_ef.
16da0 5e 25 3d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 61 64 64 5f 72 61 ^%=.......................add_ra
16dc0 6e 67 65 20 73 74 75 62 5f 6f 66 66 73 65 74 20 38 6c 20 34 0a 20 20 20 20 20 20 20 20 20 20 20 nge.stub_offset.8l.4............
16de0 20 20 20 20 20 20 20 20 20 20 20 20 20 28 53 74 75 62 28 48 61 73 68 74 62 6c 2e 66 69 6e 64 20 .............(Stub(Hashtbl.find.
16e00 73 66 77 2e 69 64 65 6e 74 5f 74 6f 5f 6e 61 6d 65 20 69 64 65 6e 74 29 29 0a 20 20 20 20 20 20 sfw.ident_to_name.ident)).......
16e20 20 20 20 20 20 20 20 20 20 20 20 20 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 65 6e 64 0a ............)...............end.
16e40 20 20 20 20 20 20 20 20 20 20 7c 20 5f 20 2d 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 73 ..........|._.->...............s
16e60 66 77 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3e 3e 3e 20 28 73 66 5f 65 66 20 5e 25 3d 20 fw...............>>>.(sf_ef.^%=.
16e80 61 64 64 5f 6c 6f 67 20 28 45 52 52 4f 52 28 22 43 6f 75 6c 64 6e 27 74 20 6d 61 74 63 68 20 73 add_log.(ERROR("Couldn't.match.s
16ea0 74 75 62 22 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 65 6e 64 0a 20 20 20 20 7c 20 5f 20 2d 3e tub")))...........end.....|._.->
16ec0 20 61 73 73 65 72 74 20 66 61 6c 73 65 0a 20 20 20 20 65 6e 64 0a 20 20 69 6e 0a 20 20 50 6f 73 .assert.false.....end...in...Pos
16ee0 4d 61 70 2e 66 6f 6c 64 20 63 68 65 63 6b 5f 73 74 75 62 20 73 66 77 2e 73 74 75 62 5f 69 64 65 Map.fold.check_stub.sfw.stub_ide
16f00 6e 74 5f 74 6f 5f 76 61 64 64 72 20 73 66 77 0a 0a 28 2a 2a 20 52 65 61 64 20 61 20 2e 73 64 75 nt_to_vaddr.sfw..(**.Read.a..sdu
16f20 6d 70 20 66 69 6c 65 20 2a 29 0a 0a 6c 65 74 20 73 64 75 6d 70 5f 6d 61 67 69 63 5f 6e 75 6d 62 mp.file.*)..let.sdump_magic_numb
16f40 65 72 20 3d 20 22 43 6f 6d 70 43 65 72 74 53 44 55 4d 50 22 20 5e 20 43 6f 6e 66 69 67 75 72 61 er.=."CompCertSDUMP".^.Configura
16f60 74 69 6f 6e 2e 76 65 72 73 69 6f 6e 0a 0a 6c 65 74 20 72 65 61 64 5f 73 64 75 6d 70 20 66 69 6c tion.version..let.read_sdump.fil
16f80 65 20 3d 0a 20 20 6c 65 74 20 69 63 20 3d 20 6f 70 65 6e 5f 69 6e 5f 62 69 6e 20 66 69 6c 65 20 e.=...let.ic.=.open_in_bin.file.
16fa0 69 6e 0a 20 20 74 72 79 0a 20 20 20 20 6c 65 74 20 6d 61 67 69 63 20 3d 20 53 74 72 69 6e 67 2e in...try.....let.magic.=.String.
16fc0 63 72 65 61 74 65 20 28 53 74 72 69 6e 67 2e 6c 65 6e 67 74 68 20 73 64 75 6d 70 5f 6d 61 67 69 create.(String.length.sdump_magi
16fe0 63 5f 6e 75 6d 62 65 72 29 20 69 6e 0a 20 20 20 20 72 65 61 6c 6c 79 5f 69 6e 70 75 74 20 69 63 c_number).in.....really_input.ic
17000 20 6d 61 67 69 63 20 30 20 28 53 74 72 69 6e 67 2e 6c 65 6e 67 74 68 20 73 64 75 6d 70 5f 6d 61 .magic.0.(String.length.sdump_ma
17020 67 69 63 5f 6e 75 6d 62 65 72 29 3b 0a 20 20 20 20 69 66 20 6d 61 67 69 63 20 3c 3e 20 73 64 75 gic_number);.....if.magic.<>.sdu
17040 6d 70 5f 6d 61 67 69 63 5f 6e 75 6d 62 65 72 20 74 68 65 6e 20 66 61 69 6c 77 69 74 68 20 22 62 mp_magic_number.then.failwith."b
17060 61 64 20 6d 61 67 69 63 20 6e 75 6d 62 65 72 22 3b 0a 20 20 20 20 6c 65 74 20 70 72 6f 67 20 3d ad.magic.number";.....let.prog.=
17080 20 28 69 6e 70 75 74 5f 76 61 6c 75 65 20 69 63 3a 20 41 73 6d 2e 70 72 6f 67 72 61 6d 29 20 69 .(input_value.ic:.Asm.program).i
170a0 6e 0a 20 20 20 20 6c 65 74 20 6e 61 6d 65 73 20 3d 20 28 69 6e 70 75 74 5f 76 61 6c 75 65 20 69 n.....let.names.=.(input_value.i
170c0 63 3a 20 28 69 64 65 6e 74 2c 20 73 74 72 69 6e 67 29 20 48 61 73 68 74 62 6c 2e 74 29 20 69 6e c:.(ident,.string).Hashtbl.t).in
170e0 0a 20 20 20 20 6c 65 74 20 61 74 6f 6d 73 20 3d 20 28 69 6e 70 75 74 5f 76 61 6c 75 65 20 69 63 .....let.atoms.=.(input_value.ic
17100 3a 20 28 69 64 65 6e 74 2c 20 43 32 43 2e 61 74 6f 6d 5f 69 6e 66 6f 29 20 48 61 73 68 74 62 6c :.(ident,.C2C.atom_info).Hashtbl
17120 2e 74 29 20 69 6e 0a 20 20 20 20 63 6c 6f 73 65 5f 69 6e 20 69 63 3b 0a 20 20 20 20 28 70 72 6f .t).in.....close_in.ic;.....(pro
17140 67 2c 20 6e 61 6d 65 73 2c 20 61 74 6f 6d 73 29 0a 20 20 77 69 74 68 0a 20 20 7c 20 45 6e 64 5f g,.names,.atoms)...with...|.End_
17160 6f 66 5f 66 69 6c 65 20 2d 3e 0a 20 20 20 20 20 20 63 6c 6f 73 65 5f 69 6e 20 69 63 3b 20 50 72 of_file.->.......close_in.ic;.Pr
17180 69 6e 74 66 2e 65 70 72 69 6e 74 66 20 22 54 72 75 6e 63 61 74 65 64 20 66 69 6c 65 20 25 73 5c intf.eprintf."Truncated.file.%s\
171a0 6e 22 20 66 69 6c 65 3b 20 65 78 69 74 20 32 0a 20 20 7c 20 46 61 69 6c 75 72 65 20 6d 73 67 20 n".file;.exit.2...|.Failure.msg.
171c0 2d 3e 0a 20 20 20 20 20 20 63 6c 6f 73 65 5f 69 6e 20 69 63 3b 20 50 72 69 6e 74 66 2e 65 70 72 ->.......close_in.ic;.Printf.epr
171e0 69 6e 74 66 20 22 43 6f 72 72 75 70 74 65 64 20 66 69 6c 65 20 25 73 3a 20 25 73 5c 6e 22 20 66 intf."Corrupted.file.%s:.%s\n".f
17200 69 6c 65 20 6d 73 67 3b 20 65 78 69 74 20 32 0a 0a 28 2a 2a 20 50 72 6f 63 65 73 73 65 73 20 61 ile.msg;.exit.2..(**.Processes.a
17220 20 2e 73 64 75 6d 70 20 66 69 6c 65 2e 0a 2a 29 0a 6c 65 74 20 70 72 6f 63 65 73 73 5f 73 64 75 ..sdump.file..*).let.process_sdu
17240 6d 70 20 65 66 77 20 73 64 75 6d 70 3a 20 65 5f 66 72 61 6d 65 77 6f 72 6b 20 3d 0a 20 20 6c 65 mp.efw.sdump:.e_framework.=...le
17260 74 20 28 70 72 6f 67 2c 20 6e 61 6d 65 73 2c 20 61 74 6f 6d 73 29 20 3d 20 72 65 61 64 5f 73 64 t.(prog,.names,.atoms).=.read_sd
17280 75 6d 70 20 73 64 75 6d 70 20 69 6e 0a 20 20 6c 65 74 20 69 64 65 6e 74 5f 74 6f 5f 73 79 6d 5f ump.sdump.in...let.ident_to_sym_
172a0 6e 64 78 20 3d 0a 20 20 20 20 48 61 73 68 74 62 6c 2e 66 6f 6c 64 0a 20 20 20 20 20 20 28 66 75 ndx.=.....Hashtbl.fold.......(fu
172c0 6e 20 69 64 65 6e 74 20 6e 61 6d 65 20 6d 20 2d 3e 0a 20 20 20 20 20 20 20 20 6d 61 74 63 68 20 n.ident.name.m.->.........match.
172e0 6e 64 78 65 73 5f 6f 66 5f 73 79 6d 5f 6e 61 6d 65 20 65 66 77 2e 65 6c 66 20 6e 61 6d 65 20 77 ndxes_of_sym_name.efw.elf.name.w
17300 69 74 68 0a 20 20 20 20 20 20 20 20 7c 20 5b 5d 20 20 20 20 2d 3e 20 6d 20 28 2a 20 73 6b 69 70 ith.........|.[]....->.m.(*.skip
17320 20 69 66 20 6d 69 73 73 69 6e 67 20 2a 29 0a 20 20 20 20 20 20 20 20 7c 20 6e 64 78 65 73 20 2d .if.missing.*).........|.ndxes.-
17340 3e 20 50 6f 73 4d 61 70 2e 61 64 64 20 69 64 65 6e 74 20 6e 64 78 65 73 20 6d 0a 20 20 20 20 20 >.PosMap.add.ident.ndxes.m......
17360 20 29 0a 20 20 20 20 20 20 6e 61 6d 65 73 0a 20 20 20 20 20 20 50 6f 73 4d 61 70 2e 65 6d 70 74 .).......names.......PosMap.empt
17380 79 0a 20 20 69 6e 0a 20 20 6c 65 74 20 77 6f 72 6b 6c 69 73 74 5f 66 75 6e 64 65 66 73 20 3d 0a y...in...let.worklist_fundefs.=.
173a0 20 20 20 20 4c 69 73 74 2e 66 69 6c 74 65 72 0a 20 20 20 20 20 20 28 66 75 6e 20 66 20 2d 3e 0a ....List.filter.......(fun.f.->.
173c0 20 20 20 20 20 20 20 20 6d 61 74 63 68 20 73 6e 64 20 66 20 77 69 74 68 0a 20 20 20 20 20 20 20 ........match.snd.f.with........
173e0 20 7c 20 49 6e 74 65 72 6e 61 6c 20 5f 20 2d 3e 20 74 72 75 65 0a 20 20 20 20 20 20 20 20 7c 20 .|.Internal._.->.true.........|.
17400 45 78 74 65 72 6e 61 6c 20 5f 20 2d 3e 20 66 61 6c 73 65 0a 20 20 20 20 20 20 29 0a 20 20 20 20 External._.->.false.......).....
17420 20 20 70 72 6f 67 2e 70 72 6f 67 5f 66 75 6e 63 74 0a 20 20 69 6e 0a 20 20 6c 65 74 20 77 6c 20 ..prog.prog_funct...in...let.wl.
17440 3d 0a 20 20 20 20 4c 69 73 74 2e 6d 61 70 0a 20 20 20 20 20 20 28 66 75 6e 20 66 20 2d 3e 0a 20 =.....List.map.......(fun.f.->..
17460 20 20 20 20 20 20 20 6d 61 74 63 68 20 66 20 77 69 74 68 0a 20 20 20 20 20 20 20 20 7c 20 69 64 .......match.f.with.........|.id
17480 65 6e 74 2c 20 49 6e 74 65 72 6e 61 6c 20 63 63 6f 64 65 20 2d 3e 20 28 69 64 65 6e 74 2c 20 48 ent,.Internal.ccode.->.(ident,.H
174a0 61 73 68 74 62 6c 2e 66 69 6e 64 20 6e 61 6d 65 73 20 69 64 65 6e 74 2c 20 63 63 6f 64 65 29 0a ashtbl.find.names.ident,.ccode).
174c0 20 20 20 20 20 20 20 20 7c 20 5f 2c 20 20 20 20 20 45 78 74 65 72 6e 61 6c 20 5f 20 20 20 20 20 ........|._,.....External._.....
174e0 2d 3e 20 61 73 73 65 72 74 20 66 61 6c 73 65 0a 20 20 20 20 20 20 29 0a 20 20 20 20 20 20 77 6f ->.assert.false.......).......wo
17500 72 6b 6c 69 73 74 5f 66 75 6e 64 65 66 73 0a 20 20 69 6e 0a 20 20 65 66 77 0a 20 20 3e 3e 3e 20 rklist_fundefs...in...efw...>>>.
17520 28 66 75 6e 20 65 66 77 20 2d 3e 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 65 66 20 20 20 20 20 20 (fun.efw.->.....{.......ef......
17540 20 20 20 20 20 20 20 20 20 20 20 20 3d 20 65 66 77 3b 0a 20 20 20 20 20 20 70 72 6f 67 72 61 6d ............=.efw;.......program
17560 20 20 20 20 20 20 20 20 20 20 20 20 20 3d 20 70 72 6f 67 3b 0a 20 20 20 20 20 20 69 64 65 6e 74 .............=.prog;.......ident
17580 5f 74 6f 5f 6e 61 6d 65 20 20 20 20 20 20 20 3d 20 6e 61 6d 65 73 3b 0a 20 20 20 20 20 20 69 64 _to_name.......=.names;.......id
175a0 65 6e 74 5f 74 6f 5f 73 79 6d 5f 6e 64 78 20 20 20 20 3d 20 69 64 65 6e 74 5f 74 6f 5f 73 79 6d ent_to_sym_ndx....=.ident_to_sym
175c0 5f 6e 64 78 3b 0a 20 20 20 20 20 20 73 74 75 62 5f 69 64 65 6e 74 5f 74 6f 5f 76 61 64 64 72 20 _ndx;.......stub_ident_to_vaddr.
175e0 3d 20 50 6f 73 4d 61 70 2e 65 6d 70 74 79 3b 0a 20 20 20 20 20 20 61 74 6f 6d 73 20 20 20 20 20 =.PosMap.empty;.......atoms.....
17600 20 20 20 20 20 20 20 20 20 20 3d 20 61 74 6f 6d 73 3b 0a 20 20 20 20 7d 0a 20 20 29 0a 20 20 3e ..........=.atoms;.....}...)...>
17620 3e 3e 20 77 6f 72 6b 6c 69 73 74 5f 70 72 6f 63 65 73 73 20 77 6c 0a 20 20 3e 3e 3e 20 63 68 65 >>.worklist_process.wl...>>>.che
17640 63 6b 5f 73 74 75 62 73 0a 20 20 3e 3e 3e 20 63 68 65 63 6b 5f 64 61 74 61 20 70 72 6f 67 2e 70 ck_stubs...>>>.check_data.prog.p
17660 72 6f 67 5f 76 61 72 73 0a 20 20 3e 3e 3e 20 28 66 75 6e 20 73 66 77 20 2d 3e 20 73 66 77 2e 65 rog_vars...>>>.(fun.sfw.->.sfw.e
17680 66 29 0a 0a 28 2a 2a 20 42 75 69 6c 64 73 20 74 68 65 20 6c 69 73 74 20 5b 30 3b 20 31 3b 20 2e f)..(**.Builds.the.list.[0;.1;..
176a0 2e 2e 3b 20 6e 20 2d 20 31 5d 2e 20 2a 29 0a 6c 65 74 20 6c 69 73 74 5f 6e 20 28 6e 3a 20 69 6e ..;.n.-.1]..*).let.list_n.(n:.in
176c0 74 29 3a 20 69 6e 74 20 6c 69 73 74 20 3d 0a 20 20 6c 65 74 20 72 65 63 20 6c 69 73 74 5f 6e 5f t):.int.list.=...let.rec.list_n_
176e0 61 75 78 20 78 20 6c 20 3d 0a 20 20 20 20 69 66 20 78 20 3c 20 30 0a 20 20 20 20 74 68 65 6e 20 aux.x.l.=.....if.x.<.0.....then.
17700 6c 0a 20 20 20 20 65 6c 73 65 20 6c 69 73 74 5f 6e 5f 61 75 78 20 28 78 20 2d 20 31 29 20 28 78 l.....else.list_n_aux.(x.-.1).(x
17720 20 3a 3a 20 6c 29 0a 20 20 69 6e 20 6c 69 73 74 5f 6e 5f 61 75 78 20 28 6e 20 2d 20 31 29 20 5b .::.l)...in.list_n_aux.(n.-.1).[
17740 5d 0a 0a 28 2a 2a 20 52 65 74 75 72 6e 73 20 74 72 75 65 20 69 66 20 5b 61 2c 20 62 5d 20 69 6e ]..(**.Returns.true.if.[a,.b].in
17760 74 65 72 73 65 63 74 73 20 5b 6f 66 73 2c 20 6f 66 73 20 2b 20 73 69 7a 65 20 2d 20 31 5d 2e 20 tersects.[ofs,.ofs.+.size.-.1]..
17780 2a 29 0a 6c 65 74 20 69 6e 74 65 72 73 65 63 74 20 28 61 2c 20 62 29 20 6f 66 73 20 73 69 7a 65 *).let.intersect.(a,.b).ofs.size
177a0 3a 20 62 6f 6f 6c 20 3d 0a 20 20 6c 65 74 20 77 69 74 68 69 6e 20 28 61 2c 20 62 29 20 78 20 3d :.bool.=...let.within.(a,.b).x.=
177c0 20 28 61 20 3c 3d 20 78 29 20 26 26 20 28 78 20 3c 3d 20 62 29 20 69 6e 0a 20 20 28 77 69 74 68 .(a.<=.x).&&.(x.<=.b).in...(with
177e0 69 6e 20 28 61 2c 20 62 29 20 6f 66 73 29 20 7c 7c 20 28 77 69 74 68 69 6e 20 28 6f 66 73 2c 20 in.(a,.b).ofs).||.(within.(ofs,.
17800 49 6e 74 33 32 2e 28 73 75 62 20 28 61 64 64 20 6f 66 73 20 73 69 7a 65 29 20 31 6c 29 29 20 61 Int32.(sub.(add.ofs.size).1l)).a
17820 29 0a 0a 6c 65 74 20 73 74 72 69 6e 67 5f 6f 66 5f 72 61 6e 67 65 20 61 20 62 20 3d 20 22 5b 30 )..let.string_of_range.a.b.=."[0
17840 78 22 20 5e 20 50 72 69 6e 74 66 2e 73 70 72 69 6e 74 66 20 22 25 30 38 6c 78 22 20 61 20 5e 20 x".^.Printf.sprintf."%08lx".a.^.
17860 22 20 2d 20 30 78 22 20 5e 0a 20 20 50 72 69 6e 74 66 2e 73 70 72 69 6e 74 66 20 22 25 30 38 6c ".-.0x".^...Printf.sprintf."%08l
17880 78 22 20 62 20 5e 20 22 5d 22 0a 0a 28 2a 2a 20 43 68 65 63 6b 73 20 74 68 61 74 20 74 68 65 20 x".b.^."]"..(**.Checks.that.the.
178a0 62 69 74 73 20 66 72 6f 6d 20 5b 73 74 61 72 74 5d 20 74 6f 20 5b 73 74 6f 70 5d 20 69 6e 20 5b bits.from.[start].to.[stop].in.[
178c0 62 73 5d 20 61 72 65 20 7a 65 72 6f 65 64 2e 20 2a 29 0a 6c 65 74 20 69 73 5f 70 61 64 64 69 6e bs].are.zeroed..*).let.is_paddin
178e0 67 20 62 73 20 73 74 61 72 74 20 73 74 6f 70 20 3d 0a 20 20 6c 65 74 20 62 73 5f 73 74 61 72 74 g.bs.start.stop.=...let.bs_start
17900 20 3d 20 73 74 61 72 74 20 2a 20 38 20 69 6e 0a 20 20 6c 65 74 20 62 73 5f 6c 65 6e 67 74 68 20 .=.start.*.8.in...let.bs_length.
17920 3d 20 28 73 74 6f 70 20 2d 20 73 74 61 72 74 20 2b 20 31 29 20 2a 20 38 20 69 6e 0a 20 20 69 73 =.(stop.-.start.+.1).*.8.in...is
17940 5f 7a 65 72 6f 73 20 28 42 69 74 73 74 72 69 6e 67 2e 73 75 62 62 69 74 73 74 72 69 6e 67 20 62 _zeros.(Bitstring.subbitstring.b
17960 73 20 62 73 5f 73 74 61 72 74 20 62 73 5f 6c 65 6e 67 74 68 29 20 62 73 5f 6c 65 6e 67 74 68 0a s.bs_start.bs_length).bs_length.
17980 0a 28 2a 2a 20 54 68 69 73 20 66 75 6e 63 74 69 6f 6e 73 20 67 6f 65 73 20 74 68 72 6f 75 67 68 .(**.This.functions.goes.through
179a0 20 74 68 65 20 6c 69 73 74 20 6f 66 20 63 68 65 63 6b 65 64 20 62 79 74 65 73 2c 20 61 6e 64 20 .the.list.of.checked.bytes,.and.
179c0 74 72 69 65 73 20 74 6f 20 66 69 6e 64 0a 20 20 20 20 70 61 64 64 69 6e 67 20 69 6e 20 69 74 2e tries.to.find.....padding.in.it.
179e0 20 54 68 61 74 20 69 73 2c 20 69 74 20 74 61 6b 65 73 20 70 61 69 72 73 20 6f 66 20 63 68 75 6e .That.is,.it.takes.pairs.of.chun
17a00 6b 73 20 69 6e 20 6f 72 64 65 72 2c 20 61 6e 64 20 61 64 64 73 20 61 0a 20 20 20 20 70 61 64 64 ks.in.order,.and.adds.a.....padd
17a20 69 6e 67 20 63 68 75 6e 6b 20 69 6e 20 62 65 74 77 65 65 6e 20 69 66 20 74 68 65 73 65 20 63 6f ing.chunk.in.between.if.these.co
17a40 6e 64 69 74 69 6f 6e 73 20 61 72 65 20 6d 65 74 3a 0a 0a 20 20 20 20 2d 20 74 68 65 20 73 65 63 nditions.are.met:......-.the.sec
17a60 6f 6e 64 20 63 68 75 6e 6b 20 6e 65 65 64 73 20 74 6f 20 62 65 20 61 6c 69 67 6e 65 64 2e 0a 0a ond.chunk.needs.to.be.aligned...
17a80 20 20 20 20 2d 20 74 68 65 20 64 69 66 66 65 72 65 6e 63 65 20 62 65 74 77 65 65 6e 20 74 68 65 ....-.the.difference.between.the
17aa0 20 74 77 6f 20 63 68 75 6e 6b 73 20 69 73 20 73 74 72 69 63 74 6c 79 20 6c 65 73 73 20 74 68 61 .two.chunks.is.strictly.less.tha
17ac0 6e 20 74 68 65 20 61 6c 69 67 6e 6d 65 6e 74 2e 0a 0a 20 20 20 20 2d 20 74 68 65 20 64 61 74 61 n.the.alignment.......-.the.data
17ae0 20 69 6e 20 74 68 69 73 20 73 70 61 63 65 20 69 73 20 7a 65 72 6f 65 64 2e 0a 0a 20 20 20 20 4f .in.this.space.is.zeroed.......O
17b00 74 68 65 72 77 69 73 65 2c 20 69 74 20 66 69 6c 6c 73 20 68 6f 6c 65 73 20 77 69 74 68 20 61 6e therwise,.it.fills.holes.with.an
17b20 20 55 6e 6b 6e 6f 77 6e 20 63 68 75 6e 6b 2e 0a 20 20 20 20 52 65 74 75 72 6e 73 20 61 20 66 72 .Unknown.chunk......Returns.a.fr
17b40 61 6d 65 77 6f 72 6b 20 77 68 65 72 65 20 5b 63 68 6b 64 5f 62 79 74 65 73 5f 6c 69 73 74 5d 20 amework.where.[chkd_bytes_list].
17b60 69 73 20 73 6f 72 74 65 64 20 61 6e 64 20 66 75 6c 6c 2e 0a 2a 29 0a 6c 65 74 20 63 68 65 63 6b is.sorted.and.full..*).let.check
17b80 5f 70 61 64 64 69 6e 67 20 65 66 77 20 3d 0a 20 20 6c 65 74 20 65 6c 66 20 3d 20 65 66 77 2e 65 _padding.efw.=...let.elf.=.efw.e
17ba0 6c 66 20 69 6e 0a 20 20 6c 65 74 20 73 6e 64 78 65 73 20 3d 20 6c 69 73 74 5f 6e 20 65 6c 66 2e lf.in...let.sndxes.=.list_n.elf.
17bc0 65 5f 68 64 72 2e 65 5f 73 68 6e 75 6d 20 69 6e 0a 20 20 6c 65 74 20 6d 61 74 63 68 69 6e 67 5f e_hdr.e_shnum.in...let.matching_
17be0 73 65 63 74 69 6f 6e 73 20 78 20 79 20 3d 0a 20 20 20 20 73 74 72 69 6e 67 5f 6f 66 5f 6c 69 73 sections.x.y.=.....string_of_lis
17c00 74 0a 20 20 20 20 20 20 69 64 0a 20 20 20 20 20 20 22 2c 20 22 0a 20 20 20 20 20 20 28 4c 69 73 t.......id.......",.".......(Lis
17c20 74 2e 6d 61 70 0a 20 20 20 20 20 20 20 20 20 28 66 75 6e 20 6e 64 78 20 2d 3e 20 65 6c 66 2e 65 t.map..........(fun.ndx.->.elf.e
17c40 5f 73 68 64 72 61 2e 28 6e 64 78 29 2e 73 68 5f 6e 61 6d 65 29 0a 20 20 20 20 20 20 20 20 20 28 _shdra.(ndx).sh_name)..........(
17c60 4c 69 73 74 2e 66 69 6c 74 65 72 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 66 75 6e 20 6e 64 78 List.filter.............(fun.ndx
17c80 20 2d 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6c 65 74 20 73 68 64 72 20 3d 20 65 6c 66 .->...............let.shdr.=.elf
17ca0 2e 65 5f 73 68 64 72 61 2e 28 6e 64 78 29 20 69 6e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .e_shdra.(ndx).in...............
17cc0 69 6e 74 65 72 73 65 63 74 20 28 78 2c 20 79 29 20 73 68 64 72 2e 73 68 5f 6f 66 66 73 65 74 20 intersect.(x,.y).shdr.sh_offset.
17ce0 73 68 64 72 2e 73 68 5f 73 69 7a 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 29 0a 20 20 20 20 20 shdr.sh_size.............)......
17d00 20 20 20 20 20 20 20 73 6e 64 78 65 73 0a 20 20 20 20 20 20 20 20 20 29 0a 20 20 20 20 20 20 29 .......sndxes..........).......)
17d20 0a 20 20 69 6e 0a 20 20 6c 65 74 20 6d 61 74 63 68 69 6e 67 5f 73 79 6d 62 6f 6c 73 20 78 20 79 ...in...let.matching_symbols.x.y
17d40 20 3d 0a 20 20 20 20 73 74 72 69 6e 67 5f 6f 66 5f 6c 69 73 74 0a 20 20 20 20 20 20 69 64 0a 20 .=.....string_of_list.......id..
17d60 20 20 20 20 20 22 2c 20 22 0a 20 20 20 20 20 20 28 4c 69 73 74 2e 6d 61 70 0a 20 20 20 20 20 20 .....",.".......(List.map.......
17d80 20 20 20 28 66 75 6e 20 73 79 6d 20 2d 3e 20 73 79 6d 2e 73 74 5f 6e 61 6d 65 29 0a 20 20 20 20 ...(fun.sym.->.sym.st_name).....
17da0 20 20 20 20 20 28 4c 69 73 74 2e 66 69 6c 74 65 72 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 66 .....(List.filter.............(f
17dc0 75 6e 20 73 79 6d 20 2d 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 73 79 6d 2e 73 un.sym.->...............if.sym.s
17de0 74 5f 73 68 6e 64 78 20 3e 3d 20 41 72 72 61 79 2e 6c 65 6e 67 74 68 20 65 6c 66 2e 65 5f 73 68 t_shndx.>=.Array.length.elf.e_sh
17e00 64 72 61 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 74 68 65 6e 20 66 61 6c 73 65 20 28 2a 20 dra...............then.false.(*.
17e20 73 70 65 63 69 61 6c 20 73 65 63 74 69 6f 6e 20 2a 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 special.section.*)..............
17e40 20 65 6c 73 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6c 65 74 20 6f 66 66 73 65 74 .else.................let.offset
17e60 20 3d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 70 68 79 73 69 63 61 6c 5f 6f 66 .=...................physical_of
17e80 66 73 65 74 5f 6f 66 5f 76 61 64 64 72 20 65 6c 66 20 73 79 6d 2e 73 74 5f 73 68 6e 64 78 20 73 fset_of_vaddr.elf.sym.st_shndx.s
17ea0 79 6d 2e 73 74 5f 76 61 6c 75 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 69 6e 0a 20 ym.st_value.................in..
17ec0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 69 6e 74 65 72 73 65 63 74 20 28 78 2c 20 79 29 20 ...............intersect.(x,.y).
17ee0 6f 66 66 73 65 74 20 73 79 6d 2e 73 74 5f 73 69 7a 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 29 offset.sym.st_size.............)
17f00 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 41 72 72 61 79 2e 74 6f 5f 6c 69 73 74 20 65 6c 66 2e .............(Array.to_list.elf.
17f20 65 5f 73 79 6d 74 61 62 29 0a 20 20 20 20 20 20 20 20 20 29 0a 20 20 20 20 20 20 29 0a 20 20 69 e_symtab)..........).......)...i
17f40 6e 0a 20 20 6c 65 74 20 75 6e 6b 6e 6f 77 6e 20 78 20 79 20 3d 20 55 6e 6b 6e 6f 77 6e 28 0a 20 n...let.unknown.x.y.=.Unknown(..
17f60 20 20 20 22 5c 6e 53 65 63 74 69 6f 6e 73 3a 20 22 20 5e 20 6d 61 74 63 68 69 6e 67 5f 73 65 63 ..."\nSections:.".^.matching_sec
17f80 74 69 6f 6e 73 20 78 20 79 20 5e 20 22 5c 6e 53 79 6d 62 6f 6c 73 3a 20 22 20 5e 20 6d 61 74 63 tions.x.y.^."\nSymbols:.".^.matc
17fa0 68 69 6e 67 5f 73 79 6d 62 6f 6c 73 20 78 20 79 0a 20 20 29 0a 20 20 69 6e 0a 20 20 28 2a 20 63 hing_symbols.x.y...)...in...(*.c
17fc0 68 65 63 6b 5f 70 61 64 64 69 6e 67 5f 61 75 78 20 61 73 73 75 6d 65 73 20 61 20 73 6f 72 74 65 heck_padding_aux.assumes.a.sorte
17fe0 64 20 6c 69 73 74 20 2a 29 0a 20 20 6c 65 74 20 72 65 63 20 63 68 65 63 6b 5f 70 61 64 64 69 6e d.list.*)...let.rec.check_paddin
18000 67 5f 61 75 78 20 65 66 77 20 61 63 63 75 20 6c 20 3d 0a 20 20 20 20 6d 61 74 63 68 20 6c 20 77 g_aux.efw.accu.l.=.....match.l.w
18020 69 74 68 0a 20 20 20 20 7c 20 5b 5d 20 2d 3e 20 61 73 73 65 72 74 20 66 61 6c 73 65 0a 20 20 20 ith.....|.[].->.assert.false....
18040 20 28 2a 20 69 66 20 74 68 65 72 65 20 69 73 20 6f 6e 6c 79 20 6f 6e 65 20 63 68 75 6e 6b 20 6c .(*.if.there.is.only.one.chunk.l
18060 65 66 74 2c 20 77 65 20 61 64 64 20 61 6e 20 75 6e 6b 6e 6f 77 6e 20 73 70 61 63 65 20 62 65 74 eft,.we.add.an.unknown.space.bet
18080 77 65 65 6e 20 69 74 20 61 6e 64 0a 20 20 20 20 20 20 20 74 68 65 20 65 6e 64 2e 20 2a 29 0a 20 ween.it.and........the.end..*)..
180a0 20 20 20 7c 20 5b 28 5f 2c 20 65 2c 20 5f 2c 20 5f 29 20 61 73 20 68 5d 20 2d 3e 0a 20 20 20 20 ...|.[(_,.e,._,._).as.h].->.....
180c0 20 20 20 20 6c 65 74 20 65 6c 66 5f 73 69 7a 65 20 3d 0a 20 20 20 20 20 20 20 20 20 20 53 61 66 ....let.elf_size.=...........Saf
180e0 65 33 32 2e 6f 66 5f 69 6e 74 20 28 28 42 69 74 73 74 72 69 6e 67 2e 62 69 74 73 74 72 69 6e 67 e32.of_int.((Bitstring.bitstring
18100 5f 6c 65 6e 67 74 68 20 65 66 77 2e 65 6c 66 2e 65 5f 62 69 74 73 74 72 69 6e 67 29 20 2f 20 38 _length.efw.elf.e_bitstring)./.8
18120 29 20 69 6e 0a 20 20 20 20 20 20 20 20 6c 65 74 20 65 6c 66 5f 65 6e 64 20 3d 20 49 6e 74 33 32 ).in.........let.elf_end.=.Int32
18140 2e 73 75 62 20 65 6c 66 5f 73 69 7a 65 20 31 6c 20 69 6e 0a 20 20 20 20 20 20 20 20 69 66 20 65 .sub.elf_size.1l.in.........if.e
18160 20 3d 20 65 6c 66 5f 65 6e 64 0a 20 20 20 20 20 20 20 20 74 68 65 6e 20 7b 20 65 66 77 20 77 69 .=.elf_end.........then.{.efw.wi
18180 74 68 0a 20 20 20 20 20 20 20 20 20 20 63 68 6b 64 5f 62 79 74 65 73 5f 6c 69 73 74 20 3d 20 4c th...........chkd_bytes_list.=.L
181a0 69 73 74 2e 72 65 76 20 28 68 20 3a 3a 20 61 63 63 75 29 3b 0a 20 20 20 20 20 20 20 20 7d 0a 20 ist.rev.(h.::.accu);.........}..
181c0 20 20 20 20 20 20 20 65 6c 73 65 20 28 0a 20 20 20 20 20 20 20 20 20 20 6c 65 74 20 73 74 61 72 .......else.(...........let.star
181e0 74 20 3d 20 49 6e 74 33 32 2e 61 64 64 20 65 20 31 6c 20 69 6e 0a 20 20 20 20 20 20 20 20 20 20 t.=.Int32.add.e.1l.in...........
18200 7b 20 65 66 77 20 77 69 74 68 0a 20 20 20 20 20 20 20 20 20 20 20 20 63 68 6b 64 5f 62 79 74 65 {.efw.with.............chkd_byte
18220 73 5f 6c 69 73 74 20 3d 20 4c 69 73 74 2e 72 65 76 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 s_list.=.List.rev...............
18240 28 28 73 74 61 72 74 2c 20 65 6c 66 5f 65 6e 64 2c 20 30 2c 20 75 6e 6b 6e 6f 77 6e 20 73 74 61 ((start,.elf_end,.0,.unknown.sta
18260 72 74 20 65 6c 66 5f 65 6e 64 29 20 3a 3a 20 68 20 3a 3a 20 61 63 63 75 29 3b 0a 20 20 20 20 20 rt.elf_end).::.h.::.accu);......
18280 20 20 20 20 20 7d 0a 20 20 20 20 20 20 20 20 29 0a 20 20 20 20 7c 20 28 28 62 31 2c 20 65 31 2c .....}.........).....|.((b1,.e1,
182a0 20 61 31 2c 20 6e 31 29 20 61 73 20 68 31 29 20 3a 3a 20 28 28 62 32 2c 20 65 32 2c 20 61 32 2c .a1,.n1).as.h1).::.((b2,.e2,.a2,
182c0 20 6e 32 29 20 61 73 20 68 32 29 20 3a 3a 20 72 65 73 74 20 2d 3e 0a 20 20 20 20 20 20 20 20 6c .n2).as.h2).::.rest.->.........l
182e0 65 74 20 70 61 64 5f 73 74 61 72 74 20 3d 20 49 6e 74 33 32 2e 61 64 64 20 65 31 20 31 6c 20 69 et.pad_start.=.Int32.add.e1.1l.i
18300 6e 0a 20 20 20 20 20 20 20 20 6c 65 74 20 70 61 64 5f 73 74 6f 70 20 3d 20 49 6e 74 33 32 2e 73 n.........let.pad_stop.=.Int32.s
18320 75 62 20 62 32 20 31 6c 20 69 6e 0a 20 20 20 20 20 20 20 20 69 66 0a 20 20 20 20 20 20 20 20 20 ub.b2.1l.in.........if..........
18340 20 70 61 64 5f 73 74 61 72 74 20 3d 20 62 32 20 28 2a 20 69 66 20 74 68 65 79 20 61 72 65 20 64 .pad_start.=.b2.(*.if.they.are.d
18360 69 72 65 63 74 6c 79 20 63 6f 6e 73 65 63 75 74 69 76 65 20 2a 29 0a 20 20 20 20 20 20 20 20 20 irectly.consecutive.*)..........
18380 20 7c 7c 20 53 61 66 65 2e 28 6f 66 5f 69 6e 74 33 32 20 62 32 20 2d 20 6f 66 5f 69 6e 74 33 32 .||.Safe.(of_int32.b2.-.of_int32
183a0 20 65 31 29 20 3e 20 61 32 20 28 2a 20 6f 72 20 69 66 20 74 68 65 79 20 61 72 65 20 74 6f 6f 20 .e1).>.a2.(*.or.if.they.are.too.
183c0 66 61 72 20 61 77 61 79 20 2a 29 0a 20 20 20 20 20 20 20 20 20 20 7c 7c 20 6e 6f 74 20 28 69 73 far.away.*)...........||.not.(is
183e0 5f 70 61 64 64 69 6e 67 20 65 66 77 2e 65 6c 66 2e 65 5f 62 69 74 73 74 72 69 6e 67 0a 20 20 20 _padding.efw.elf.e_bitstring....
18400 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 53 61 66 65 33 32 2e 74 6f 5f 69 6e 74 20 .................(Safe32.to_int.
18420 70 61 64 5f 73 74 61 72 74 29 20 28 53 61 66 65 33 32 2e 74 6f 5f 69 6e 74 20 70 61 64 5f 73 74 pad_start).(Safe32.to_int.pad_st
18440 6f 70 29 29 0a 20 20 20 20 20 20 20 20 74 68 65 6e 20 28 2a 20 6e 6f 74 20 70 61 64 64 69 6e 67 op)).........then.(*.not.padding
18460 20 2a 29 0a 20 20 20 20 20 20 20 20 20 20 69 66 20 70 61 64 5f 73 74 61 72 74 20 3c 3d 20 70 61 .*)...........if.pad_start.<=.pa
18480 64 5f 73 74 6f 70 0a 20 20 20 20 20 20 20 20 20 20 74 68 65 6e 20 63 68 65 63 6b 5f 70 61 64 64 d_stop...........then.check_padd
184a0 69 6e 67 5f 61 75 78 20 65 66 77 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 28 70 61 64 5f 73 74 ing_aux.efw.............((pad_st
184c0 61 72 74 2c 20 70 61 64 5f 73 74 6f 70 2c 20 30 2c 20 75 6e 6b 6e 6f 77 6e 20 70 61 64 5f 73 74 art,.pad_stop,.0,.unknown.pad_st
184e0 61 72 74 20 70 61 64 5f 73 74 6f 70 29 20 3a 3a 20 68 31 20 3a 3a 20 61 63 63 75 29 0a 20 20 20 art.pad_stop).::.h1.::.accu)....
18500 20 20 20 20 20 20 20 20 20 28 68 32 20 3a 3a 20 72 65 73 74 29 0a 20 20 20 20 20 20 20 20 20 20 .........(h2.::.rest)...........
18520 65 6c 73 65 20 63 68 65 63 6b 5f 70 61 64 64 69 6e 67 5f 61 75 78 20 65 66 77 20 28 68 31 20 3a else.check_padding_aux.efw.(h1.:
18540 3a 20 61 63 63 75 29 20 28 68 32 20 3a 3a 20 72 65 73 74 29 0a 20 20 20 20 20 20 20 20 65 6c 73 :.accu).(h2.::.rest).........els
18560 65 20 28 20 28 2a 20 74 68 69 73 20 69 73 20 70 61 64 64 69 6e 67 21 20 2a 29 0a 20 20 20 20 20 e.(.(*.this.is.padding!.*)......
18580 20 20 20 20 20 63 68 65 63 6b 5f 70 61 64 64 69 6e 67 5f 61 75 78 20 65 66 77 0a 20 20 20 20 20 .....check_padding_aux.efw......
185a0 20 20 20 20 20 20 20 28 28 70 61 64 5f 73 74 61 72 74 2c 20 70 61 64 5f 73 74 6f 70 2c 20 30 2c .......((pad_start,.pad_stop,.0,
185c0 20 50 61 64 64 69 6e 67 29 20 3a 3a 20 68 31 20 3a 3a 20 61 63 63 75 29 0a 20 20 20 20 20 20 20 .Padding).::.h1.::.accu)........
185e0 20 20 20 20 20 28 68 32 20 3a 3a 20 72 65 73 74 29 0a 20 20 20 20 20 20 20 20 29 0a 20 20 69 6e .....(h2.::.rest).........)...in
18600 0a 20 20 6c 65 74 20 73 6f 72 74 65 64 5f 63 68 6b 64 5f 62 79 74 65 73 5f 6c 69 73 74 20 3d 0a ...let.sorted_chkd_bytes_list.=.
18620 20 20 20 20 4c 69 73 74 2e 66 61 73 74 5f 73 6f 72 74 0a 20 20 20 20 20 20 28 66 75 6e 20 28 61 ....List.fast_sort.......(fun.(a
18640 2c 20 5f 2c 20 5f 2c 20 5f 29 20 28 62 2c 20 5f 2c 20 5f 2c 20 5f 29 20 2d 3e 20 49 6e 74 33 32 ,._,._,._).(b,._,._,._).->.Int32
18660 2e 63 6f 6d 70 61 72 65 20 61 20 62 29 0a 20 20 20 20 20 20 65 66 77 2e 63 68 6b 64 5f 62 79 74 .compare.a.b).......efw.chkd_byt
18680 65 73 5f 6c 69 73 74 0a 20 20 69 6e 20 63 68 65 63 6b 5f 70 61 64 64 69 6e 67 5f 61 75 78 20 65 es_list...in.check_padding_aux.e
186a0 66 77 20 5b 5d 20 73 6f 72 74 65 64 5f 63 68 6b 64 5f 62 79 74 65 73 5f 6c 69 73 74 0a 0a 28 2a fw.[].sorted_chkd_bytes_list..(*
186c0 2a 20 43 68 65 63 6b 73 20 61 20 62 6f 6f 6c 65 61 6e 2e 20 2a 29 0a 6c 65 74 20 65 66 5f 63 68 *.Checks.a.boolean..*).let.ef_ch
186e0 65 63 6b 62 20 62 20 6d 73 67 20 3d 0a 20 20 69 66 20 62 20 74 68 65 6e 20 69 64 20 65 6c 73 65 eckb.b.msg.=...if.b.then.id.else
18700 20 61 64 64 5f 6c 6f 67 28 45 52 52 4f 52 28 6d 73 67 29 29 0a 0a 6c 65 74 20 63 68 65 63 6b 5f .add_log(ERROR(msg))..let.check_
18720 65 6c 66 5f 69 64 65 6e 74 69 66 69 63 61 74 69 6f 6e 20 65 66 77 20 3d 0a 20 20 6c 65 74 20 65 elf_identification.efw.=...let.e
18740 69 20 3d 20 65 66 77 2e 65 6c 66 2e 65 5f 68 64 72 2e 65 5f 69 64 65 6e 74 20 69 6e 0a 20 20 65 i.=.efw.elf.e_hdr.e_ident.in...e
18760 66 77 0a 20 20 3e 3e 3e 20 65 66 5f 63 68 65 63 6b 62 20 28 65 69 2e 65 69 5f 63 6c 61 73 73 20 fw...>>>.ef_checkb.(ei.ei_class.
18780 3d 20 45 4c 46 43 4c 41 53 53 33 32 29 20 22 45 4c 46 20 63 6c 61 73 73 20 73 68 6f 75 6c 64 20 =.ELFCLASS32)."ELF.class.should.
187a0 62 65 20 45 4c 46 43 4c 41 53 53 33 32 22 0a 20 20 3e 3e 3e 20 65 66 5f 63 68 65 63 6b 62 20 28 be.ELFCLASS32"...>>>.ef_checkb.(
187c0 65 69 2e 65 69 5f 64 61 74 61 20 3d 20 45 4c 46 44 41 54 41 32 4d 53 42 20 7c 7c 20 65 69 2e 65 ei.ei_data.=.ELFDATA2MSB.||.ei.e
187e0 69 5f 64 61 74 61 20 3d 20 45 4c 46 44 41 54 41 32 4c 53 42 29 0a 20 20 20 20 22 45 4c 46 20 73 i_data.=.ELFDATA2LSB)....."ELF.s
18800 68 6f 75 6c 64 20 62 65 20 4d 53 42 20 6f 72 20 4c 53 42 22 0a 20 20 3e 3e 3e 20 65 66 5f 63 68 hould.be.MSB.or.LSB"...>>>.ef_ch
18820 65 63 6b 62 20 28 65 69 2e 65 69 5f 76 65 72 73 69 6f 6e 20 3d 20 45 56 5f 43 55 52 52 45 4e 54 eckb.(ei.ei_version.=.EV_CURRENT
18840 29 0a 20 20 20 20 22 45 4c 46 20 69 64 65 6e 74 69 66 69 63 61 74 69 6f 6e 20 76 65 72 73 69 6f )....."ELF.identification.versio
18860 6e 20 73 68 6f 75 6c 64 20 62 65 20 45 56 5f 43 55 52 52 45 4e 54 22 0a 0a 6c 65 74 20 63 68 65 n.should.be.EV_CURRENT"..let.che
18880 63 6b 5f 65 6c 66 5f 68 65 61 64 65 72 20 65 66 77 3a 20 65 5f 66 72 61 6d 65 77 6f 72 6b 20 3d ck_elf_header.efw:.e_framework.=
188a0 0a 20 20 6c 65 74 20 65 68 20 3d 20 65 66 77 2e 65 6c 66 2e 65 5f 68 64 72 20 69 6e 0a 20 20 65 ...let.eh.=.efw.elf.e_hdr.in...e
188c0 66 77 0a 20 20 3e 3e 3e 20 63 68 65 63 6b 5f 65 6c 66 5f 69 64 65 6e 74 69 66 69 63 61 74 69 6f fw...>>>.check_elf_identificatio
188e0 6e 0a 20 20 3e 3e 3e 20 65 66 5f 63 68 65 63 6b 62 20 28 65 68 2e 65 5f 74 79 70 65 20 3d 20 45 n...>>>.ef_checkb.(eh.e_type.=.E
18900 54 5f 45 58 45 43 29 20 22 45 4c 46 20 74 79 70 65 20 73 68 6f 75 6c 64 20 62 65 20 45 54 5f 45 T_EXEC)."ELF.type.should.be.ET_E
18920 58 45 43 22 0a 20 20 3e 3e 3e 20 65 66 5f 63 68 65 63 6b 62 20 28 65 68 2e 65 5f 6d 61 63 68 69 XEC"...>>>.ef_checkb.(eh.e_machi
18940 6e 65 20 3d 20 45 4d 5f 50 50 43 29 20 22 45 4c 46 20 6d 61 63 68 69 6e 65 20 73 68 6f 75 6c 64 ne.=.EM_PPC)."ELF.machine.should
18960 20 62 65 20 50 50 43 22 0a 20 20 3e 3e 3e 20 65 66 5f 63 68 65 63 6b 62 20 28 65 68 2e 65 5f 76 .be.PPC"...>>>.ef_checkb.(eh.e_v
18980 65 72 73 69 6f 6e 20 3d 20 45 56 5f 43 55 52 52 45 4e 54 29 20 22 45 4c 46 20 76 65 72 73 69 6f ersion.=.EV_CURRENT)."ELF.versio
189a0 6e 20 73 68 6f 75 6c 64 20 62 65 20 45 56 5f 43 55 52 52 45 4e 54 22 0a 20 20 3e 3e 3e 20 61 64 n.should.be.EV_CURRENT"...>>>.ad
189c0 64 5f 72 61 6e 67 65 20 30 6c 20 35 32 6c 20 30 20 45 4c 46 5f 68 65 61 64 65 72 20 28 2a 20 48 d_range.0l.52l.0.ELF_header.(*.H
189e0 65 61 64 65 72 20 69 73 20 61 6c 77 61 79 73 20 35 32 2d 62 79 74 65 73 20 6c 6f 6e 67 20 2a 29 eader.is.always.52-bytes.long.*)
18a00 0a 0a 28 2a 2a 20 43 68 65 63 6b 73 20 74 68 65 20 69 6e 64 65 78 20 30 20 6f 66 20 74 68 65 20 ..(**.Checks.the.index.0.of.the.
18a20 73 79 6d 62 6f 6c 20 74 61 62 6c 65 2e 20 54 68 69 73 20 69 6e 64 65 78 20 69 73 20 72 65 73 65 symbol.table..This.index.is.rese
18a40 72 76 65 64 20 74 6f 20 68 6f 6c 64 0a 20 20 20 20 73 70 65 63 69 61 6c 20 76 61 6c 75 65 73 2e rved.to.hold.....special.values.
18a60 20 2a 29 0a 6c 65 74 20 63 68 65 63 6b 5f 73 79 6d 5f 74 61 62 5f 7a 65 72 6f 20 65 66 77 20 3d .*).let.check_sym_tab_zero.efw.=
18a80 0a 20 20 6c 65 74 20 65 6c 66 20 3d 20 65 66 77 2e 65 6c 66 20 69 6e 0a 20 20 6c 65 74 20 73 79 ...let.elf.=.efw.elf.in...let.sy
18aa0 6d 30 20 3d 20 65 66 77 2e 65 6c 66 2e 65 5f 73 79 6d 74 61 62 2e 28 30 29 20 69 6e 0a 20 20 65 m0.=.efw.elf.e_symtab.(0).in...e
18ac0 66 77 0a 20 20 3e 3e 3e 20 28 0a 20 20 20 20 69 66 20 73 79 6d 30 2e 73 74 5f 6e 61 6d 65 20 3d fw...>>>.(.....if.sym0.st_name.=
18ae0 20 22 22 0a 20 20 20 20 74 68 65 6e 20 69 64 0a 20 20 20 20 65 6c 73 65 20 61 64 64 5f 6c 6f 67 ."".....then.id.....else.add_log
18b00 20 28 45 52 52 4f 52 28 22 53 79 6d 62 6f 6c 20 30 20 73 68 6f 75 6c 64 20 6e 6f 74 20 68 61 76 .(ERROR("Symbol.0.should.not.hav
18b20 65 20 61 20 6e 61 6d 65 22 29 29 0a 20 20 29 0a 20 20 3e 3e 3e 20 28 0a 20 20 20 20 69 66 20 73 e.a.name"))...)...>>>.(.....if.s
18b40 79 6d 30 2e 73 74 5f 76 61 6c 75 65 20 3d 20 30 6c 0a 20 20 20 20 74 68 65 6e 20 69 64 0a 20 20 ym0.st_value.=.0l.....then.id...
18b60 20 20 65 6c 73 65 20 61 64 64 5f 6c 6f 67 20 28 45 52 52 4f 52 28 22 53 79 6d 62 6f 6c 20 30 20 ..else.add_log.(ERROR("Symbol.0.
18b80 73 68 6f 75 6c 64 20 68 61 76 65 20 73 74 5f 76 61 6c 75 65 20 3d 20 30 22 29 29 0a 20 20 29 0a should.have.st_value.=.0"))...).
18ba0 20 20 3e 3e 3e 20 28 0a 20 20 20 20 69 66 20 73 79 6d 30 2e 73 74 5f 73 69 7a 65 20 3d 20 30 6c ..>>>.(.....if.sym0.st_size.=.0l
18bc0 0a 20 20 20 20 74 68 65 6e 20 69 64 0a 20 20 20 20 65 6c 73 65 20 61 64 64 5f 6c 6f 67 20 28 45 .....then.id.....else.add_log.(E
18be0 52 52 4f 52 28 22 53 79 6d 62 6f 6c 20 30 20 73 68 6f 75 6c 64 20 68 61 76 65 20 73 74 5f 73 69 RROR("Symbol.0.should.have.st_si
18c00 7a 65 20 3d 20 30 22 29 29 0a 20 20 29 0a 20 20 3e 3e 3e 20 28 0a 20 20 20 20 69 66 20 73 79 6d ze.=.0"))...)...>>>.(.....if.sym
18c20 30 2e 73 74 5f 62 69 6e 64 20 3d 20 53 54 42 5f 4c 4f 43 41 4c 0a 20 20 20 20 74 68 65 6e 20 69 0.st_bind.=.STB_LOCAL.....then.i
18c40 64 0a 20 20 20 20 65 6c 73 65 20 61 64 64 5f 6c 6f 67 20 28 45 52 52 4f 52 28 22 53 79 6d 62 6f d.....else.add_log.(ERROR("Symbo
18c60 6c 20 30 20 73 68 6f 75 6c 64 20 68 61 76 65 20 53 54 42 5f 4c 4f 43 41 4c 20 62 69 6e 64 69 6e l.0.should.have.STB_LOCAL.bindin
18c80 67 22 29 29 0a 20 20 29 0a 20 20 3e 3e 3e 20 28 0a 20 20 20 20 69 66 20 73 79 6d 30 2e 73 74 5f g"))...)...>>>.(.....if.sym0.st_
18ca0 74 79 70 65 20 3d 20 53 54 54 5f 4e 4f 54 59 50 45 0a 20 20 20 20 74 68 65 6e 20 69 64 0a 20 20 type.=.STT_NOTYPE.....then.id...
18cc0 20 20 65 6c 73 65 20 61 64 64 5f 6c 6f 67 20 28 45 52 52 4f 52 28 22 53 79 6d 62 6f 6c 20 30 20 ..else.add_log.(ERROR("Symbol.0.
18ce0 73 68 6f 75 6c 64 20 68 61 76 65 20 53 54 54 5f 4e 4f 54 59 50 45 20 74 79 70 65 22 29 29 0a 20 should.have.STT_NOTYPE.type"))..
18d00 20 29 0a 20 20 3e 3e 3e 20 28 0a 20 20 20 20 69 66 20 73 79 6d 30 2e 73 74 5f 6f 74 68 65 72 20 .)...>>>.(.....if.sym0.st_other.
18d20 3d 20 30 0a 20 20 20 20 74 68 65 6e 20 69 64 0a 20 20 20 20 65 6c 73 65 20 61 64 64 5f 6c 6f 67 =.0.....then.id.....else.add_log
18d40 20 28 45 52 52 4f 52 28 22 53 79 6d 62 6f 6c 20 30 20 73 68 6f 75 6c 64 20 68 61 76 65 20 73 74 .(ERROR("Symbol.0.should.have.st
18d60 5f 6f 74 68 65 72 20 3d 20 30 22 29 29 0a 20 20 29 0a 20 20 3e 3e 3e 20 28 0a 20 20 20 20 69 66 _other.=.0"))...)...>>>.(.....if
18d80 20 73 79 6d 30 2e 73 74 5f 73 68 6e 64 78 20 3d 20 73 68 6e 5f 55 4e 44 45 46 0a 20 20 20 20 74 .sym0.st_shndx.=.shn_UNDEF.....t
18da0 68 65 6e 20 69 64 0a 20 20 20 20 65 6c 73 65 20 61 64 64 5f 6c 6f 67 20 28 45 52 52 4f 52 28 22 hen.id.....else.add_log.(ERROR("
18dc0 53 79 6d 62 6f 6c 20 30 20 73 68 6f 75 6c 64 20 68 61 76 65 20 73 74 5f 73 68 6e 64 78 20 3d 20 Symbol.0.should.have.st_shndx.=.
18de0 53 48 4e 5f 55 4e 44 45 46 22 29 29 0a 20 20 29 0a 20 20 3e 3e 3e 20 61 64 64 5f 72 61 6e 67 65 SHN_UNDEF"))...)...>>>.add_range
18e00 20 65 6c 66 2e 65 5f 73 68 64 72 61 2e 28 65 6c 66 2e 65 5f 73 79 6d 74 61 62 5f 73 6e 64 78 29 .elf.e_shdra.(elf.e_symtab_sndx)
18e20 2e 73 68 5f 6f 66 66 73 65 74 20 31 36 6c 20 34 20 5a 65 72 6f 5f 73 79 6d 62 6f 6c 0a 0a 28 2a .sh_offset.16l.4.Zero_symbol..(*
18e40 2a 20 43 68 65 63 6b 73 20 61 20 77 68 6f 6c 65 20 45 4c 46 20 66 69 6c 65 20 61 63 63 6f 72 64 *.Checks.a.whole.ELF.file.accord
18e60 69 6e 67 20 74 6f 20 61 20 6c 69 73 74 20 6f 66 20 2e 73 64 75 6d 70 20 66 69 6c 65 73 2e 20 54 ing.to.a.list.of..sdump.files..T
18e80 68 69 73 20 6e 65 76 65 72 0a 20 20 20 20 64 75 6d 70 73 20 61 6e 79 74 68 69 6e 67 2c 20 73 6f his.never.....dumps.anything,.so
18ea0 20 69 74 20 63 61 6e 20 62 65 20 73 61 66 65 6c 79 20 75 73 65 64 20 77 68 65 6e 20 66 75 7a 7a .it.can.be.safely.used.when.fuzz
18ec0 2d 74 65 73 74 69 6e 67 20 65 76 65 6e 20 69 66 20 74 68 65 0a 20 20 20 20 75 73 65 72 20 61 63 -testing.even.if.the.....user.ac
18ee0 63 69 64 65 6e 74 61 6c 6c 79 20 65 6e 61 62 6c 65 64 20 64 75 6d 70 69 6e 67 20 6f 70 74 69 6f cidentally.enabled.dumping.optio
18f00 6e 73 2e 20 2a 29 0a 6c 65 74 20 63 68 65 63 6b 5f 65 6c 66 5f 6e 6f 64 75 6d 70 20 65 6c 66 20 ns..*).let.check_elf_nodump.elf.
18f20 73 64 75 6d 70 73 20 3d 0a 20 20 6c 65 74 20 65 68 20 3d 20 65 6c 66 2e 65 5f 68 64 72 20 69 6e sdumps.=...let.eh.=.elf.e_hdr.in
18f40 0a 20 20 6c 65 74 20 6e 62 5f 73 79 6d 73 20 3d 20 41 72 72 61 79 2e 6c 65 6e 67 74 68 20 65 6c ...let.nb_syms.=.Array.length.el
18f60 66 2e 65 5f 73 79 6d 74 61 62 20 69 6e 0a 20 20 6c 65 74 20 73 65 63 74 69 6f 6e 5f 73 74 72 74 f.e_symtab.in...let.section_strt
18f80 61 62 20 3d 20 65 6c 66 2e 65 5f 73 68 64 72 61 2e 28 65 68 2e 65 5f 73 68 73 74 72 6e 64 78 29 ab.=.elf.e_shdra.(eh.e_shstrndx)
18fa0 20 69 6e 0a 20 20 6c 65 74 20 73 79 6d 74 61 62 5f 73 68 64 72 20 3d 20 65 6c 66 2e 65 5f 73 68 .in...let.symtab_shdr.=.elf.e_sh
18fc0 64 72 61 2e 28 65 6c 66 2e 65 5f 73 79 6d 74 61 62 5f 73 6e 64 78 29 20 69 6e 0a 20 20 6c 65 74 dra.(elf.e_symtab_sndx).in...let
18fe0 20 73 79 6d 62 6f 6c 5f 73 74 72 74 61 62 20 3d 20 65 6c 66 2e 65 5f 73 68 64 72 61 2e 28 53 61 .symbol_strtab.=.elf.e_shdra.(Sa
19000 66 65 33 32 2e 74 6f 5f 69 6e 74 20 73 79 6d 74 61 62 5f 73 68 64 72 2e 73 68 5f 6c 69 6e 6b 29 fe32.to_int.symtab_shdr.sh_link)
19020 20 69 6e 0a 20 20 6c 65 74 20 65 66 77 20 3d 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 65 6c 66 20 .in...let.efw.=.....{.......elf.
19040 3d 20 65 6c 66 3b 0a 20 20 20 20 20 20 6c 6f 67 20 3d 20 5b 5d 3b 0a 20 20 20 20 20 20 63 68 6b =.elf;.......log.=.[];.......chk
19060 64 5f 62 79 74 65 73 5f 6c 69 73 74 20 3d 20 5b 5d 3b 0a 20 20 20 20 20 20 63 68 6b 64 5f 66 75 d_bytes_list.=.[];.......chkd_fu
19080 6e 5f 73 79 6d 73 20 3d 20 41 72 72 61 79 2e 6d 61 6b 65 20 6e 62 5f 73 79 6d 73 20 66 61 6c 73 n_syms.=.Array.make.nb_syms.fals
190a0 65 3b 0a 20 20 20 20 20 20 63 68 6b 64 5f 64 61 74 61 5f 73 79 6d 73 20 3d 20 41 72 72 61 79 2e e;.......chkd_data_syms.=.Array.
190c0 6d 61 6b 65 20 6e 62 5f 73 79 6d 73 20 66 61 6c 73 65 3b 0a 20 20 20 20 7d 0a 20 20 20 20 3e 3e make.nb_syms.false;.....}.....>>
190e0 3e 20 63 68 65 63 6b 5f 65 6c 66 5f 68 65 61 64 65 72 0a 20 20 20 20 3e 3e 3e 20 61 64 64 5f 72 >.check_elf_header.....>>>.add_r
19100 61 6e 67 65 0a 20 20 20 20 20 20 65 68 2e 65 5f 70 68 6f 66 66 0a 20 20 20 20 20 20 53 61 66 65 ange.......eh.e_phoff.......Safe
19120 2e 28 74 6f 5f 69 6e 74 33 32 20 28 65 68 2e 65 5f 70 68 6e 75 6d 20 2a 20 65 68 2e 65 5f 70 68 .(to_int32.(eh.e_phnum.*.eh.e_ph
19140 65 6e 74 73 69 7a 65 29 29 0a 20 20 20 20 20 20 34 0a 20 20 20 20 20 20 45 4c 46 5f 70 72 6f 67 entsize)).......4.......ELF_prog
19160 74 61 62 0a 20 20 20 20 3e 3e 3e 20 61 64 64 5f 72 61 6e 67 65 0a 20 20 20 20 20 20 65 68 2e 65 tab.....>>>.add_range.......eh.e
19180 5f 73 68 6f 66 66 0a 20 20 20 20 20 20 53 61 66 65 2e 28 74 6f 5f 69 6e 74 33 32 20 28 65 68 2e _shoff.......Safe.(to_int32.(eh.
191a0 65 5f 73 68 6e 75 6d 20 2a 20 65 68 2e 65 5f 73 68 65 6e 74 73 69 7a 65 29 29 0a 20 20 20 20 20 e_shnum.*.eh.e_shentsize))......
191c0 20 34 0a 20 20 20 20 20 20 45 4c 46 5f 73 68 74 61 62 0a 20 20 20 20 3e 3e 3e 20 61 64 64 5f 72 .4.......ELF_shtab.....>>>.add_r
191e0 61 6e 67 65 0a 20 20 20 20 20 20 73 65 63 74 69 6f 6e 5f 73 74 72 74 61 62 2e 73 68 5f 6f 66 66 ange.......section_strtab.sh_off
19200 73 65 74 0a 20 20 20 20 20 20 73 65 63 74 69 6f 6e 5f 73 74 72 74 61 62 2e 73 68 5f 73 69 7a 65 set.......section_strtab.sh_size
19220 0a 20 20 20 20 20 20 30 0a 20 20 20 20 20 20 45 4c 46 5f 73 65 63 74 69 6f 6e 5f 73 74 72 74 61 .......0.......ELF_section_strta
19240 62 0a 20 20 20 20 3e 3e 3e 20 61 64 64 5f 72 61 6e 67 65 0a 20 20 20 20 20 20 73 79 6d 62 6f 6c b.....>>>.add_range.......symbol
19260 5f 73 74 72 74 61 62 2e 73 68 5f 6f 66 66 73 65 74 0a 20 20 20 20 20 20 73 79 6d 62 6f 6c 5f 73 _strtab.sh_offset.......symbol_s
19280 74 72 74 61 62 2e 73 68 5f 73 69 7a 65 0a 20 20 20 20 20 20 30 0a 20 20 20 20 20 20 45 4c 46 5f trtab.sh_size.......0.......ELF_
192a0 73 79 6d 62 6f 6c 5f 73 74 72 74 61 62 0a 20 20 20 20 3e 3e 3e 20 63 68 65 63 6b 5f 73 79 6d 5f symbol_strtab.....>>>.check_sym_
192c0 74 61 62 5f 7a 65 72 6f 0a 20 20 69 6e 0a 20 20 28 2a 20 54 68 72 65 61 64 20 74 68 65 20 66 72 tab_zero...in...(*.Thread.the.fr
192e0 61 6d 65 77 6f 72 6b 20 74 68 72 6f 75 67 68 20 74 68 65 20 70 72 6f 63 65 73 73 69 6e 67 20 6f amework.through.the.processing.o
19300 66 20 61 6c 6c 20 2e 73 64 75 6d 70 20 66 69 6c 65 73 20 2a 29 0a 20 20 4c 69 73 74 2e 66 6f 6c f.all..sdump.files.*)...List.fol
19320 64 5f 6c 65 66 74 20 70 72 6f 63 65 73 73 5f 73 64 75 6d 70 20 65 66 77 20 73 64 75 6d 70 73 0a d_left.process_sdump.efw.sdumps.
19340 20 20 28 2a 20 74 68 65 6e 20 66 69 6e 61 6c 6c 79 2c 20 63 68 65 63 6b 20 74 68 65 20 70 61 64 ..(*.then.finally,.check.the.pad
19360 64 69 6e 67 20 69 6e 20 62 65 74 77 65 65 6e 20 69 64 65 6e 74 69 66 69 65 64 20 62 79 74 65 20 ding.in.between.identified.byte.
19380 63 68 75 6e 6b 73 20 2a 29 0a 20 20 3e 3e 3e 20 63 68 65 63 6b 5f 70 61 64 64 69 6e 67 0a 0a 28 chunks.*)...>>>.check_padding..(
193a0 2a 2a 20 43 68 65 63 6b 73 20 61 20 77 68 6f 6c 65 20 45 4c 46 20 66 69 6c 65 20 61 63 63 6f 72 **.Checks.a.whole.ELF.file.accor
193c0 64 69 6e 67 20 74 6f 20 2e 73 64 75 6d 70 20 66 69 6c 65 73 2e 0a 20 20 20 20 49 66 20 72 65 71 ding.to..sdump.files......If.req
193e0 75 65 73 74 65 64 2c 20 64 75 6d 70 20 74 68 65 20 63 61 6c 63 75 6c 61 74 65 64 20 62 79 74 65 uested,.dump.the.calculated.byte
19400 73 20 6d 61 70 70 69 6e 67 2c 20 73 6f 20 74 68 61 74 20 69 74 20 63 61 6e 20 62 65 0a 20 20 20 s.mapping,.so.that.it.can.be....
19420 20 72 65 75 73 65 64 20 62 79 20 74 68 65 20 66 75 7a 7a 65 72 2e 20 2a 29 0a 6c 65 74 20 63 68 .reused.by.the.fuzzer..*).let.ch
19440 65 63 6b 5f 65 6c 66 5f 64 75 6d 70 20 65 6c 66 66 69 6c 65 6e 61 6d 65 20 73 64 75 6d 70 73 20 eck_elf_dump.elffilename.sdumps.
19460 3d 0a 20 20 6c 65 74 20 65 6c 66 20 3d 20 72 65 61 64 5f 65 6c 66 20 65 6c 66 66 69 6c 65 6e 61 =...let.elf.=.read_elf.elffilena
19480 6d 65 20 69 6e 0a 20 20 6c 65 74 20 65 66 77 20 3d 20 63 68 65 63 6b 5f 65 6c 66 5f 6e 6f 64 75 me.in...let.efw.=.check_elf_nodu
194a0 6d 70 20 65 6c 66 20 73 64 75 6d 70 73 20 69 6e 0a 20 20 28 2a 20 70 72 69 6e 74 20 74 68 65 20 mp.elf.sdumps.in...(*.print.the.
194c0 65 6c 66 6d 61 70 20 69 66 20 72 65 71 75 65 73 74 65 64 20 2a 29 0a 20 20 69 66 20 21 70 72 69 elfmap.if.requested.*)...if.!pri
194e0 6e 74 5f 65 6c 66 6d 61 70 20 74 68 65 6e 20 62 65 67 69 6e 0a 20 20 20 20 70 72 69 6e 74 5f 65 nt_elfmap.then.begin.....print_e
19500 6e 64 6c 69 6e 65 20 28 0a 20 20 20 20 20 20 73 74 72 69 6e 67 5f 6f 66 5f 6c 69 73 74 0a 20 20 ndline.(.......string_of_list...
19520 20 20 20 20 20 20 28 66 75 6e 20 28 61 2c 20 62 2c 20 61 6c 69 67 6e 2c 20 72 29 20 2d 3e 20 73 ......(fun.(a,.b,.align,.r).->.s
19540 74 72 69 6e 67 5f 6f 66 5f 72 61 6e 67 65 20 61 20 62 20 5e 20 22 20 28 22 20 5e 0a 20 20 20 20 tring_of_range.a.b.^.".(".^.....
19560 20 20 20 20 20 20 73 74 72 69 6e 67 5f 6f 66 5f 69 6e 74 20 61 6c 69 67 6e 20 5e 20 22 29 20 22 ......string_of_int.align.^.")."
19580 20 5e 20 73 74 72 69 6e 67 5f 6f 66 5f 62 79 74 65 5f 63 68 75 6e 6b 5f 64 65 73 63 20 72 29 0a .^.string_of_byte_chunk_desc.r).
195a0 20 20 20 20 20 20 20 20 22 5c 6e 22 0a 20 20 20 20 20 20 20 20 65 66 77 2e 63 68 6b 64 5f 62 79 ........"\n".........efw.chkd_by
195c0 74 65 73 5f 6c 69 73 74 0a 20 20 20 20 29 0a 20 20 65 6e 64 3b 0a 20 20 28 2a 20 64 75 6d 70 20 tes_list.....)...end;...(*.dump.
195e0 74 68 65 20 65 6c 66 6d 61 70 20 69 66 20 72 65 71 75 65 73 74 65 64 20 2a 29 0a 20 20 69 66 20 the.elfmap.if.requested.*)...if.
19600 21 64 75 6d 70 5f 65 6c 66 6d 61 70 20 74 68 65 6e 20 62 65 67 69 6e 0a 20 20 20 20 6c 65 74 20 !dump_elfmap.then.begin.....let.
19620 6f 63 20 3d 20 6f 70 65 6e 5f 6f 75 74 20 28 65 6c 66 66 69 6c 65 6e 61 6d 65 20 5e 20 22 2e 65 oc.=.open_out.(elffilename.^.".e
19640 6c 66 6d 61 70 22 29 20 69 6e 0a 20 20 20 20 6f 75 74 70 75 74 5f 76 61 6c 75 65 20 6f 63 20 65 lfmap").in.....output_value.oc.e
19660 66 77 2e 63 68 6b 64 5f 62 79 74 65 73 5f 6c 69 73 74 3b 0a 20 20 20 20 63 6c 6f 73 65 5f 6f 75 fw.chkd_bytes_list;.....close_ou
19680 74 20 6f 63 0a 20 20 65 6e 64 3b 0a 20 20 28 2a 20 69 6e 64 69 63 61 74 65 20 66 75 6e 63 74 69 t.oc...end;...(*.indicate.functi
196a0 6f 6e 20 73 79 6d 62 6f 6c 73 20 74 68 61 74 20 68 61 76 65 20 6e 6f 74 20 62 65 65 6e 20 63 68 on.symbols.that.have.not.been.ch
196c0 65 63 6b 65 64 20 2a 29 0a 20 20 6c 65 74 20 6d 69 73 73 5f 66 75 6e 20 3d 0a 20 20 20 20 4c 69 ecked.*)...let.miss_fun.=.....Li
196e0 73 74 2e 66 69 6c 74 65 72 0a 20 20 20 20 20 20 28 66 75 6e 20 6e 64 78 20 2d 3e 0a 20 20 20 20 st.filter.......(fun.ndx.->.....
19700 20 20 20 20 6c 65 74 20 73 79 6d 74 79 70 65 20 3d 20 65 66 77 2e 65 6c 66 2e 65 5f 73 79 6d 74 ....let.symtype.=.efw.elf.e_symt
19720 61 62 2e 28 6e 64 78 29 2e 73 74 5f 74 79 70 65 20 69 6e 0a 20 20 20 20 20 20 20 20 73 79 6d 74 ab.(ndx).st_type.in.........symt
19740 79 70 65 20 3d 20 53 54 54 5f 46 55 4e 43 20 7c 7c 20 73 79 6d 74 79 70 65 20 3d 20 53 54 54 5f ype.=.STT_FUNC.||.symtype.=.STT_
19760 4e 4f 54 59 50 45 0a 20 20 20 20 20 20 29 0a 20 20 20 20 20 20 28 66 69 6c 74 65 72 5f 73 6f 6d NOTYPE.......).......(filter_som
19780 65 0a 20 20 20 20 20 20 20 20 20 28 41 72 72 61 79 2e 74 6f 5f 6c 69 73 74 0a 20 20 20 20 20 20 e..........(Array.to_list.......
197a0 20 20 20 20 20 20 28 41 72 72 61 79 2e 6d 61 70 69 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ......(Array.mapi...............
197c0 20 28 66 75 6e 20 6e 64 78 20 62 20 2d 3e 20 69 66 20 62 20 74 68 65 6e 20 4e 6f 6e 65 20 65 6c .(fun.ndx.b.->.if.b.then.None.el
197e0 73 65 20 53 6f 6d 65 28 6e 64 78 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 65 66 77 se.Some(ndx))................efw
19800 2e 63 68 6b 64 5f 66 75 6e 5f 73 79 6d 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 29 0a 20 20 20 .chkd_fun_syms.............)....
19820 20 20 20 20 20 20 29 0a 20 20 20 20 20 20 29 0a 20 20 69 6e 0a 20 20 69 66 20 21 65 78 68 61 75 ......).......)...in...if.!exhau
19840 73 74 69 76 69 74 79 0a 20 20 74 68 65 6e 0a 20 20 20 20 62 65 67 69 6e 20 6d 61 74 63 68 20 6d stivity...then.....begin.match.m
19860 69 73 73 5f 66 75 6e 20 77 69 74 68 0a 20 20 20 20 7c 20 5b 5d 20 2d 3e 20 28 29 0a 20 20 20 20 iss_fun.with.....|.[].->.().....
19880 7c 20 5f 20 20 2d 3e 0a 20 20 20 20 20 20 20 20 70 72 69 6e 74 5f 65 6e 64 6c 69 6e 65 0a 20 20 |._..->.........print_endline...
198a0 20 20 20 20 20 20 20 20 22 5c 6e 57 41 52 4e 49 4e 47 3a 20 74 68 65 20 66 6f 6c 6c 6f 77 69 6e ........"\nWARNING:.the.followin
198c0 67 20 66 75 6e 63 74 69 6f 6e 20 73 79 6d 62 6f 6c 73 20 64 6f 20 6e 6f 74 20 61 70 70 65 61 72 g.function.symbols.do.not.appear
198e0 20 69 6e 20 2e 73 64 75 6d 70 20 66 69 6c 65 73 2e 22 3b 0a 20 20 20 20 20 20 20 20 70 72 69 6e .in..sdump.files.";.........prin
19900 74 5f 65 6e 64 6c 69 6e 65 20 28 0a 20 20 20 20 20 20 20 20 20 20 73 74 72 69 6e 67 5f 6f 66 5f t_endline.(...........string_of_
19920 6c 69 73 74 20 28 66 75 6e 20 6e 64 78 20 2d 3e 20 65 66 77 2e 65 6c 66 2e 65 5f 73 79 6d 74 61 list.(fun.ndx.->.efw.elf.e_symta
19940 62 2e 28 6e 64 78 29 2e 73 74 5f 6e 61 6d 65 29 20 22 20 22 20 6d 69 73 73 5f 66 75 6e 0a 20 20 b.(ndx).st_name).".".miss_fun...
19960 20 20 20 20 20 20 29 0a 20 20 20 20 65 6e 64 0a 20 20 3b 0a 20 20 28 2a 20 69 6e 64 69 63 61 74 ......).....end...;...(*.indicat
19980 65 20 64 61 74 61 20 73 79 6d 62 6f 6c 73 20 74 68 61 74 20 68 61 76 65 20 6e 6f 74 20 62 65 65 e.data.symbols.that.have.not.bee
199a0 6e 20 63 68 65 63 6b 65 64 20 2a 29 0a 20 20 6c 65 74 20 6d 69 73 73 5f 64 61 74 61 20 3d 0a 20 n.checked.*)...let.miss_data.=..
199c0 20 20 20 4c 69 73 74 2e 66 69 6c 74 65 72 0a 20 20 20 20 20 20 28 66 75 6e 20 6e 64 78 20 2d 3e ...List.filter.......(fun.ndx.->
199e0 0a 20 20 20 20 20 20 20 20 6c 65 74 20 73 79 6d 74 79 70 65 20 3d 20 65 66 77 2e 65 6c 66 2e 65 .........let.symtype.=.efw.elf.e
19a00 5f 73 79 6d 74 61 62 2e 28 6e 64 78 29 2e 73 74 5f 74 79 70 65 20 69 6e 0a 20 20 20 20 20 20 20 _symtab.(ndx).st_type.in........
19a20 20 73 79 6d 74 79 70 65 20 3d 20 53 54 54 5f 4f 42 4a 45 43 54 20 7c 7c 20 73 79 6d 74 79 70 65 .symtype.=.STT_OBJECT.||.symtype
19a40 20 3d 20 53 54 54 5f 4e 4f 54 59 50 45 0a 20 20 20 20 20 20 29 0a 20 20 20 20 20 20 28 66 69 6c .=.STT_NOTYPE.......).......(fil
19a60 74 65 72 5f 73 6f 6d 65 0a 20 20 20 20 20 20 20 20 20 28 41 72 72 61 79 2e 74 6f 5f 6c 69 73 74 ter_some..........(Array.to_list
19a80 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 41 72 72 61 79 2e 6d 61 70 69 0a 20 20 20 20 20 20 20 .............(Array.mapi........
19aa0 20 20 20 20 20 20 20 20 28 66 75 6e 20 6e 64 78 20 62 20 2d 3e 20 69 66 20 62 20 74 68 65 6e 20 ........(fun.ndx.b.->.if.b.then.
19ac0 4e 6f 6e 65 20 65 6c 73 65 20 53 6f 6d 65 28 6e 64 78 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 None.else.Some(ndx))............
19ae0 20 20 20 20 65 66 77 2e 63 68 6b 64 5f 64 61 74 61 5f 73 79 6d 73 0a 20 20 20 20 20 20 20 20 20 ....efw.chkd_data_syms..........
19b00 20 20 20 29 0a 20 20 20 20 20 20 20 20 20 29 0a 20 20 20 20 20 20 29 0a 20 20 69 6e 0a 20 20 69 ...)..........).......)...in...i
19b20 66 20 21 65 78 68 61 75 73 74 69 76 69 74 79 0a 20 20 74 68 65 6e 0a 20 20 20 20 62 65 67 69 6e f.!exhaustivity...then.....begin
19b40 20 6d 61 74 63 68 20 6d 69 73 73 5f 64 61 74 61 20 77 69 74 68 0a 20 20 20 20 7c 20 5b 5d 20 2d .match.miss_data.with.....|.[].-
19b60 3e 20 28 29 0a 20 20 20 20 7c 20 5f 20 20 2d 3e 0a 20 20 20 20 20 20 20 20 70 72 69 6e 74 5f 65 >.().....|._..->.........print_e
19b80 6e 64 6c 69 6e 65 0a 20 20 20 20 20 20 20 20 20 20 22 5c 6e 57 41 52 4e 49 4e 47 3a 20 74 68 65 ndline..........."\nWARNING:.the
19ba0 20 66 6f 6c 6c 6f 77 69 6e 67 20 64 61 74 61 20 73 79 6d 62 6f 6c 73 20 64 6f 20 6e 6f 74 20 61 .following.data.symbols.do.not.a
19bc0 70 70 65 61 72 20 69 6e 20 2e 73 64 75 6d 70 20 66 69 6c 65 73 2e 22 3b 0a 20 20 20 20 20 20 20 ppear.in..sdump.files.";........
19be0 20 70 72 69 6e 74 5f 65 6e 64 6c 69 6e 65 20 28 0a 20 20 20 20 20 20 20 20 20 20 73 74 72 69 6e .print_endline.(...........strin
19c00 67 5f 6f 66 5f 6c 69 73 74 20 28 66 75 6e 20 6e 64 78 20 2d 3e 20 65 66 77 2e 65 6c 66 2e 65 5f g_of_list.(fun.ndx.->.efw.elf.e_
19c20 73 79 6d 74 61 62 2e 28 6e 64 78 29 2e 73 74 5f 6e 61 6d 65 29 20 22 20 22 20 6d 69 73 73 5f 64 symtab.(ndx).st_name).".".miss_d
19c40 61 74 61 0a 20 20 20 20 20 20 20 20 29 0a 20 20 20 20 65 6e 64 0a 20 20 3b 0a 20 20 28 2a 20 70 ata.........).....end...;...(*.p
19c60 72 69 6e 74 20 64 69 61 67 6e 6f 73 69 73 20 2a 29 0a 20 20 6c 65 74 20 77 6f 72 72 79 73 6f 6d rint.diagnosis.*)...let.worrysom
19c80 65 20 3d 20 4c 69 73 74 2e 66 69 6c 74 65 72 0a 20 20 20 20 28 66 75 6e 63 74 69 6f 6e 20 45 52 e.=.List.filter.....(function.ER
19ca0 52 4f 52 28 5f 29 20 2d 3e 20 74 72 75 65 20 7c 20 57 41 52 4e 49 4e 47 28 5f 29 20 2d 3e 20 74 ROR(_).->.true.|.WARNING(_).->.t
19cc0 72 75 65 20 7c 20 44 45 42 55 47 28 5f 29 20 2d 3e 20 66 61 6c 73 65 29 0a 20 20 20 20 65 66 77 rue.|.DEBUG(_).->.false).....efw
19ce0 2e 6c 6f 67 0a 20 20 69 6e 0a 20 20 6c 65 74 20 65 78 69 73 74 73 5f 75 6e 6b 6e 6f 77 6e 5f 63 .log...in...let.exists_unknown_c
19d00 68 75 6e 6b 20 3d 0a 20 20 20 20 4c 69 73 74 2e 65 78 69 73 74 73 0a 20 20 20 20 20 20 28 66 75 hunk.=.....List.exists.......(fu
19d20 6e 63 74 69 6f 6e 20 28 5f 2c 20 5f 2c 20 5f 2c 20 55 6e 6b 6e 6f 77 6e 28 5f 29 29 20 2d 3e 20 nction.(_,._,._,.Unknown(_)).->.
19d40 74 72 75 65 20 7c 20 5f 20 2d 3e 20 66 61 6c 73 65 29 0a 20 20 20 20 20 20 65 66 77 2e 63 68 6b true.|._.->.false).......efw.chk
19d60 64 5f 62 79 74 65 73 5f 6c 69 73 74 0a 20 20 69 6e 0a 20 20 62 65 67 69 6e 20 6d 61 74 63 68 20 d_bytes_list...in...begin.match.
19d80 77 6f 72 72 79 73 6f 6d 65 20 77 69 74 68 0a 20 20 7c 20 5b 5d 20 2d 3e 0a 20 20 20 20 20 20 70 worrysome.with...|.[].->.......p
19da0 72 69 6e 74 5f 65 6e 64 6c 69 6e 65 20 22 5c 6e 45 76 65 72 79 74 68 69 6e 67 20 73 65 65 6d 73 rint_endline."\nEverything.seems
19dc0 20 66 69 6e 65 20 77 69 74 68 20 74 68 69 73 20 45 4c 46 2e 22 3b 0a 20 20 20 20 20 20 69 66 20 .fine.with.this.ELF.";.......if.
19de0 65 78 69 73 74 73 5f 75 6e 6b 6e 6f 77 6e 5f 63 68 75 6e 6b 0a 20 20 20 20 20 20 74 68 65 6e 20 exists_unknown_chunk.......then.
19e00 62 65 67 69 6e 0a 20 20 20 20 20 20 20 20 70 72 69 6e 74 5f 65 6e 64 6c 69 6e 65 20 28 0a 20 20 begin.........print_endline.(...
19e20 20 20 20 20 20 20 20 20 22 48 6f 77 65 76 65 72 2c 20 73 6f 6d 65 20 70 61 72 74 73 20 6f 66 20 ........"However,.some.parts.of.
19e40 74 68 65 20 45 4c 46 20 63 6f 75 6c 64 20 6e 6f 74 20 62 65 20 69 64 65 6e 74 69 66 69 65 64 2e the.ELF.could.not.be.identified.
19e60 22 20 5e 0a 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 21 70 72 69 6e 74 5f 65 6c 66 6d 61 70 ".^.............if.!print_elfmap
19e80 0a 20 20 20 20 20 20 20 20 20 20 20 20 74 68 65 6e 20 22 22 0a 20 20 20 20 20 20 20 20 20 20 20 .............then.""............
19ea0 20 65 6c 73 65 20 22 20 55 73 65 20 2d 70 72 69 6e 74 65 6c 66 6d 61 70 20 74 6f 20 73 65 65 20 .else.".Use.-printelfmap.to.see.
19ec0 77 68 61 74 20 77 61 73 20 63 6f 76 65 72 65 64 2e 22 0a 20 20 20 20 20 20 20 20 29 0a 20 20 20 what.was.covered.".........)....
19ee0 20 20 20 65 6e 64 0a 20 20 7c 20 5f 20 2d 3e 0a 20 20 20 20 20 20 4c 69 73 74 2e 28 69 74 65 72 ...end...|._.->.......List.(iter
19f00 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 66 75 6e 20 65 20 2d 3e 0a 20 20 20 20 20 20 20 ...............(fun.e.->........
19f20 20 20 20 20 20 20 20 20 20 6d 61 74 63 68 20 73 74 72 69 6e 67 5f 6f 66 5f 6c 6f 67 5f 65 6e 74 .........match.string_of_log_ent
19f40 72 79 20 66 61 6c 73 65 20 65 20 77 69 74 68 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ry.false.e.with.................
19f60 7c 20 22 22 20 2d 3e 20 28 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7c 20 73 20 2d |."".->.().................|.s.-
19f80 3e 20 70 72 69 6e 74 5f 65 6e 64 6c 69 6e 65 20 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 >.print_endline.s...............
19fa0 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 72 65 76 20 65 66 77 2e 6c 6f 67 29 0a 20 20 )...............(rev.efw.log)...
19fc0 20 20 20 20 29 0a 20 20 65 6e 64 3b 0a 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ....)...end;....................
19fe0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1a000 45 4c 46 5f 70 61 72 73 65 72 73 2e 6d 6c 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ELF_parsers.ml..................
1a020 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1a040 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1a060 00 00 00 00 30 30 30 36 34 34 20 00 30 30 30 37 36 35 20 00 30 30 30 30 32 34 20 00 30 30 30 30 ....000644..000765..000024..0000
1a080 30 30 32 36 31 31 30 20 31 31 37 33 37 30 35 37 34 30 33 20 30 31 34 35 33 32 00 20 30 00 00 00 0026110.11737057403.014532..0...
1a0a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1a0c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1a0e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1a100 00 75 73 74 61 72 00 30 30 73 61 6e 64 72 69 6e 65 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 .ustar.00sandrine...............
1a120 00 00 00 00 00 00 00 00 00 73 74 61 66 66 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 .........staff..................
1a140 00 00 00 00 00 00 00 00 00 30 30 30 30 30 30 20 00 30 30 30 30 30 30 20 00 00 00 00 00 00 00 00 .........000000..000000.........
1a160 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1a180 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1a1a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1a1c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1a1e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1a200 6f 70 65 6e 20 42 69 74 73 74 72 69 6e 67 5f 75 74 69 6c 73 0a 6f 70 65 6e 20 45 4c 46 5f 74 79 open.Bitstring_utils.open.ELF_ty
1a220 70 65 73 0a 6f 70 65 6e 20 45 4c 46 5f 70 72 69 6e 74 65 72 73 0a 6f 70 65 6e 20 45 4c 46 5f 75 pes.open.ELF_printers.open.ELF_u
1a240 74 69 6c 73 0a 6f 70 65 6e 20 4c 69 62 72 61 72 79 0a 6f 70 65 6e 20 50 50 43 5f 70 61 72 73 65 tils.open.Library.open.PPC_parse
1a260 72 73 0a 0a 65 78 63 65 70 74 69 6f 6e 20 55 6e 6b 6e 6f 77 6e 5f 65 6e 64 69 61 6e 6e 65 73 73 rs..exception.Unknown_endianness
1a280 0a 0a 28 2a 2a 20 43 6f 6e 76 65 72 74 73 20 61 6e 20 65 6c 66 20 65 6e 64 69 61 6e 20 69 6e 74 ..(**.Converts.an.elf.endian.int
1a2a0 6f 20 61 20 62 69 74 73 74 72 69 6e 67 20 65 6e 64 69 61 6e 20 2a 29 0a 6c 65 74 20 65 6c 66 64 o.a.bitstring.endian.*).let.elfd
1a2c0 61 74 61 5f 74 6f 5f 65 6e 64 69 61 6e 20 28 65 3a 20 65 6c 66 64 61 74 61 29 3a 20 42 69 74 73 ata_to_endian.(e:.elfdata):.Bits
1a2e0 74 72 69 6e 67 2e 65 6e 64 69 61 6e 20 3d 0a 20 20 6d 61 74 63 68 20 65 20 77 69 74 68 0a 20 20 tring.endian.=...match.e.with...
1a300 7c 20 45 4c 46 44 41 54 41 32 4c 53 42 20 2d 3e 20 42 69 74 73 74 72 69 6e 67 2e 4c 69 74 74 6c |.ELFDATA2LSB.->.Bitstring.Littl
1a320 65 45 6e 64 69 61 6e 0a 20 20 7c 20 45 4c 46 44 41 54 41 32 4d 53 42 20 2d 3e 20 42 69 74 73 74 eEndian...|.ELFDATA2MSB.->.Bitst
1a340 72 69 6e 67 2e 42 69 67 45 6e 64 69 61 6e 0a 20 20 7c 20 5f 20 20 20 20 20 20 20 20 20 20 20 2d ring.BigEndian...|._...........-
1a360 3e 20 72 61 69 73 65 20 55 6e 6b 6e 6f 77 6e 5f 65 6e 64 69 61 6e 6e 65 73 73 0a 0a 28 2a 2a 20 >.raise.Unknown_endianness..(**.
1a380 50 61 72 73 65 73 20 61 6e 20 65 6c 66 33 32 20 68 65 61 64 65 72 20 2a 29 0a 6c 65 74 20 72 65 Parses.an.elf32.header.*).let.re
1a3a0 61 64 5f 65 6c 66 33 32 5f 65 68 64 72 20 28 62 73 3a 20 62 69 74 73 74 72 69 6e 67 29 3a 20 65 ad_elf32_ehdr.(bs:.bitstring):.e
1a3c0 6c 66 33 32 5f 65 68 64 72 20 3d 0a 20 20 62 69 74 6d 61 74 63 68 20 62 73 20 77 69 74 68 0a 20 lf32_ehdr.=...bitmatch.bs.with..
1a3e0 20 7c 20 7b 20 65 5f 69 64 65 6e 74 20 3a 20 31 36 2a 38 20 3a 20 62 69 74 73 74 72 69 6e 67 20 .|.{.e_ident.:.16*8.:.bitstring.
1a400 3b 0a 20 20 20 20 20 20 72 65 73 74 20 20 20 20 3a 20 2d 31 20 20 20 3a 20 62 69 74 73 74 72 69 ;.......rest....:.-1...:.bitstri
1a420 6e 67 20 7d 20 2d 3e 0a 20 20 20 20 20 20 28 0a 20 20 20 20 20 20 20 20 62 69 74 6d 61 74 63 68 ng.}.->.......(.........bitmatch
1a440 20 65 5f 69 64 65 6e 74 20 77 69 74 68 0a 20 20 20 20 20 20 20 20 7c 20 7b 20 30 78 37 46 20 20 .e_ident.with.........|.{.0x7F..
1a460 20 20 20 20 20 3a 20 38 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 0a 20 20 20 20 20 20 20 20 .....:.8..............;.........
1a480 20 20 20 20 22 45 4c 46 22 20 20 20 20 20 20 3a 20 32 34 20 3a 20 73 74 72 69 6e 67 20 20 20 20 ...."ELF"......:.24.:.string....
1a4a0 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 65 69 5f 63 6c 61 73 73 20 20 20 3a 20 38 20 20 3a 20 ;.............ei_class...:.8..:.
1a4c0 69 6e 74 20 20 20 20 20 20 20 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 65 69 5f 64 61 74 61 20 int.......;.............ei_data.
1a4e0 20 20 20 3a 20 38 20 20 3a 20 69 6e 74 20 20 20 20 20 20 20 3b 0a 20 20 20 20 20 20 20 20 20 20 ...:.8..:.int.......;...........
1a500 20 20 65 69 5f 76 65 72 73 69 6f 6e 20 3a 20 38 20 20 3a 20 69 6e 74 20 20 20 20 20 20 20 3b 0a ..ei_version.:.8..:.int.......;.
1a520 20 20 20 20 20 20 20 20 20 20 20 20 70 61 64 64 69 6e 67 20 20 20 20 3a 20 37 32 20 3a 20 62 69 ............padding....:.72.:.bi
1a540 74 73 74 72 69 6e 67 20 7d 20 2d 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 61 73 73 65 72 74 20 tstring.}.->.............assert.
1a560 28 69 73 5f 7a 65 72 6f 73 20 70 61 64 64 69 6e 67 20 37 32 29 3b 0a 20 20 20 20 20 20 20 20 20 (is_zeros.padding.72);..........
1a580 20 20 20 6c 65 74 20 65 69 5f 64 61 74 61 20 3d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 62 ...let.ei_data.=...............b
1a5a0 65 67 69 6e 20 6d 61 74 63 68 20 65 69 5f 64 61 74 61 20 77 69 74 68 0a 20 20 20 20 20 20 20 20 egin.match.ei_data.with.........
1a5c0 20 20 20 20 20 20 7c 20 30 20 2d 3e 20 45 4c 46 44 41 54 41 4e 4f 4e 45 0a 20 20 20 20 20 20 20 ......|.0.->.ELFDATANONE........
1a5e0 20 20 20 20 20 20 20 7c 20 31 20 2d 3e 20 45 4c 46 44 41 54 41 32 4c 53 42 0a 20 20 20 20 20 20 .......|.1.->.ELFDATA2LSB.......
1a600 20 20 20 20 20 20 20 20 7c 20 32 20 2d 3e 20 45 4c 46 44 41 54 41 32 4d 53 42 0a 20 20 20 20 20 ........|.2.->.ELFDATA2MSB......
1a620 20 20 20 20 20 20 20 20 20 7c 20 5f 20 2d 3e 20 45 4c 46 44 41 54 41 55 4e 4b 4e 4f 57 4e 0a 20 .........|._.->.ELFDATAUNKNOWN..
1a640 20 20 20 20 20 20 20 20 20 20 20 20 20 65 6e 64 0a 20 20 20 20 20 20 20 20 20 20 20 20 69 6e 0a .............end.............in.
1a660 20 20 20 20 20 20 20 20 20 20 20 20 6c 65 74 20 65 20 3d 20 65 6c 66 64 61 74 61 5f 74 6f 5f 65 ............let.e.=.elfdata_to_e
1a680 6e 64 69 61 6e 20 65 69 5f 64 61 74 61 20 69 6e 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 0a 20 ndian.ei_data.in.............(..
1a6a0 20 20 20 20 20 20 20 20 20 20 20 20 20 62 69 74 6d 61 74 63 68 20 72 65 73 74 20 77 69 74 68 0a .............bitmatch.rest.with.
1a6c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7c 20 7b 20 65 5f 74 79 70 65 20 20 20 20 20 20 3a 20 ..............|.{.e_type......:.
1a6e0 31 36 20 3a 20 69 6e 74 2c 20 65 6e 64 69 61 6e 28 65 29 20 3b 0a 20 20 20 20 20 20 20 20 20 20 16.:.int,.endian(e).;...........
1a700 20 20 20 20 20 20 20 20 65 5f 6d 61 63 68 69 6e 65 20 20 20 3a 20 31 36 20 3a 20 69 6e 74 2c 20 ........e_machine...:.16.:.int,.
1a720 65 6e 64 69 61 6e 28 65 29 20 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 65 5f endian(e).;...................e_
1a740 76 65 72 73 69 6f 6e 20 20 20 3a 20 33 32 20 3a 20 69 6e 74 2c 20 65 6e 64 69 61 6e 28 65 29 20 version...:.32.:.int,.endian(e).
1a760 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 65 5f 65 6e 74 72 79 20 20 20 20 20 ;...................e_entry.....
1a780 3a 20 33 32 20 3a 20 69 6e 74 2c 20 65 6e 64 69 61 6e 28 65 29 20 3b 0a 20 20 20 20 20 20 20 20 :.32.:.int,.endian(e).;.........
1a7a0 20 20 20 20 20 20 20 20 20 20 65 5f 70 68 6f 66 66 20 20 20 20 20 3a 20 33 32 20 3a 20 69 6e 74 ..........e_phoff.....:.32.:.int
1a7c0 2c 20 65 6e 64 69 61 6e 28 65 29 20 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ,.endian(e).;...................
1a7e0 65 5f 73 68 6f 66 66 20 20 20 20 20 3a 20 33 32 20 3a 20 69 6e 74 2c 20 65 6e 64 69 61 6e 28 65 e_shoff.....:.32.:.int,.endian(e
1a800 29 20 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 65 5f 66 6c 61 67 73 20 20 20 ).;...................e_flags...
1a820 20 20 3a 20 33 32 20 3a 20 62 69 74 73 74 72 69 6e 67 20 20 20 20 20 20 3b 0a 20 20 20 20 20 20 ..:.32.:.bitstring......;.......
1a840 20 20 20 20 20 20 20 20 20 20 20 20 65 5f 65 68 73 69 7a 65 20 20 20 20 3a 20 31 36 20 3a 20 69 ............e_ehsize....:.16.:.i
1a860 6e 74 2c 20 65 6e 64 69 61 6e 28 65 29 20 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 nt,.endian(e).;.................
1a880 20 20 65 5f 70 68 65 6e 74 73 69 7a 65 20 3a 20 31 36 20 3a 20 69 6e 74 2c 20 65 6e 64 69 61 6e ..e_phentsize.:.16.:.int,.endian
1a8a0 28 65 29 20 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 65 5f 70 68 6e 75 6d 20 (e).;...................e_phnum.
1a8c0 20 20 20 20 3a 20 31 36 20 3a 20 69 6e 74 2c 20 65 6e 64 69 61 6e 28 65 29 20 3b 0a 20 20 20 20 ....:.16.:.int,.endian(e).;.....
1a8e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 65 5f 73 68 65 6e 74 73 69 7a 65 20 3a 20 31 36 20 3a ..............e_shentsize.:.16.:
1a900 20 69 6e 74 2c 20 65 6e 64 69 61 6e 28 65 29 20 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .int,.endian(e).;...............
1a920 20 20 20 20 65 5f 73 68 6e 75 6d 20 20 20 20 20 3a 20 31 36 20 3a 20 69 6e 74 2c 20 65 6e 64 69 ....e_shnum.....:.16.:.int,.endi
1a940 61 6e 28 65 29 20 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 65 5f 73 68 73 74 an(e).;...................e_shst
1a960 72 6e 64 78 20 20 3a 20 31 36 20 3a 20 69 6e 74 2c 20 65 6e 64 69 61 6e 28 65 29 20 7d 20 2d 3e rndx..:.16.:.int,.endian(e).}.->
1a980 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 2a 20 54 68 65 73 65 20 73 68 6f 75 ...................(*.These.shou
1a9a0 6c 64 6e 27 74 20 62 65 20 64 69 66 66 65 72 65 6e 74 20 74 68 61 6e 20 74 68 69 73 2e 2e 2e 20 ldn't.be.different.than.this....
1a9c0 2a 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 61 73 73 65 72 74 20 28 65 5f 65 *)...................assert.(e_e
1a9e0 68 73 69 7a 65 20 3d 20 35 32 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 61 hsize.=.52);...................a
1aa00 73 73 65 72 74 20 28 65 5f 70 68 65 6e 74 73 69 7a 65 20 3d 20 33 32 29 3b 0a 20 20 20 20 20 20 ssert.(e_phentsize.=.32);.......
1aa20 20 20 20 20 20 20 20 20 20 20 20 20 61 73 73 65 72 74 20 28 65 5f 73 68 65 6e 74 73 69 7a 65 20 ............assert.(e_shentsize.
1aa40 3d 20 34 30 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7b 0a 20 20 20 20 20 =.40);...................{......
1aa60 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 65 5f 69 64 65 6e 74 20 3d 0a 20 20 20 20 20 20 20 ...............e_ident.=........
1aa80 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ...............{................
1aaa0 20 20 20 20 20 20 20 20 20 65 69 5f 63 6c 61 73 73 20 20 20 20 20 20 3d 0a 20 20 20 20 20 20 20 .........ei_class......=........
1aac0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 62 65 67 69 6e 20 6d 61 74 63 68 20 65 ...................begin.match.e
1aae0 69 5f 63 6c 61 73 73 20 77 69 74 68 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 i_class.with....................
1ab00 20 20 20 20 20 20 20 7c 20 30 20 2d 3e 20 45 4c 46 43 4c 41 53 53 4e 4f 4e 45 0a 20 20 20 20 20 .......|.0.->.ELFCLASSNONE......
1ab20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7c 20 31 20 2d 3e 20 45 4c 46 43 .....................|.1.->.ELFC
1ab40 4c 41 53 53 33 32 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 LASS32..........................
1ab60 20 7c 20 32 20 2d 3e 20 45 4c 46 43 4c 41 53 53 36 34 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 .|.2.->.ELFCLASS64..............
1ab80 20 20 20 20 20 20 20 20 20 20 20 20 20 7c 20 5f 20 2d 3e 20 45 4c 46 43 4c 41 53 53 55 4e 4b 4e .............|._.->.ELFCLASSUNKN
1aba0 4f 57 4e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 65 6e OWN...........................en
1abc0 64 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 65 69 5f 64 61 d;.........................ei_da
1abe0 74 61 20 20 20 20 20 3d 20 65 69 5f 64 61 74 61 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ta.....=.ei_data;...............
1ac00 20 20 20 20 20 20 20 20 20 20 65 69 5f 76 65 72 73 69 6f 6e 20 20 3d 0a 20 20 20 20 20 20 20 20 ..........ei_version..=.........
1ac20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 62 65 67 69 6e 20 6d 61 74 63 68 20 65 69 ..................begin.match.ei
1ac40 5f 76 65 72 73 69 6f 6e 20 77 69 74 68 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 _version.with...................
1ac60 20 20 20 20 20 20 20 20 7c 20 30 20 2d 3e 20 45 56 5f 4e 4f 4e 45 0a 20 20 20 20 20 20 20 20 20 ........|.0.->.EV_NONE..........
1ac80 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7c 20 31 20 2d 3e 20 45 56 5f 43 55 52 52 45 .................|.1.->.EV_CURRE
1aca0 4e 54 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7c 20 5f NT...........................|._
1acc0 20 2d 3e 20 45 56 5f 55 4e 4b 4e 4f 57 4e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .->.EV_UNKNOWN..................
1ace0 20 20 20 20 20 20 20 20 20 65 6e 64 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .........end;...................
1ad00 20 20 20 20 7d 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 65 5f 74 79 70 ....};.....................e_typ
1ad20 65 20 20 20 20 20 20 20 20 3d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 e........=......................
1ad40 20 62 65 67 69 6e 20 6d 61 74 63 68 20 65 5f 74 79 70 65 20 77 69 74 68 0a 20 20 20 20 20 20 20 .begin.match.e_type.with........
1ad60 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7c 20 30 20 2d 3e 20 45 54 5f 4e 4f 4e 45 0a 20 20 ...............|.0.->.ET_NONE...
1ad80 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7c 20 31 20 2d 3e 20 45 54 5f 52 45 ....................|.1.->.ET_RE
1ada0 4c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7c 20 32 20 2d 3e 20 45 L.......................|.2.->.E
1adc0 54 5f 45 58 45 43 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7c 20 33 T_EXEC.......................|.3
1ade0 20 2d 3e 20 45 54 5f 44 59 4e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .->.ET_DYN......................
1ae00 20 7c 20 34 20 2d 3e 20 45 54 5f 43 4f 52 45 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .|.4.->.ET_CORE.................
1ae20 20 20 20 20 20 20 7c 20 5f 20 2d 3e 20 45 54 5f 55 4e 4b 4e 4f 57 4e 0a 20 20 20 20 20 20 20 20 ......|._.->.ET_UNKNOWN.........
1ae40 20 20 20 20 20 20 20 20 20 20 20 20 20 20 65 6e 64 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 ..............end;..............
1ae60 20 20 20 20 20 20 20 65 5f 6d 61 63 68 69 6e 65 20 20 20 20 20 3d 0a 20 20 20 20 20 20 20 20 20 .......e_machine.....=..........
1ae80 20 20 20 20 20 20 20 20 20 20 20 20 20 62 65 67 69 6e 20 6d 61 74 63 68 20 65 5f 6d 61 63 68 69 .............begin.match.e_machi
1aea0 6e 65 20 77 69 74 68 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7c 20 ne.with.......................|.
1aec0 30 20 20 2d 3e 20 45 4d 5f 4e 4f 4e 45 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 0..->.EM_NONE...................
1aee0 20 20 20 20 7c 20 31 20 20 2d 3e 20 45 4d 5f 4d 33 32 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 ....|.1..->.EM_M32..............
1af00 20 20 20 20 20 20 20 20 20 7c 20 32 20 20 2d 3e 20 45 4d 5f 53 50 41 52 43 0a 20 20 20 20 20 20 .........|.2..->.EM_SPARC.......
1af20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7c 20 33 20 20 2d 3e 20 45 4d 5f 33 38 36 0a 20 ................|.3..->.EM_386..
1af40 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7c 20 34 20 20 2d 3e 20 45 4d 5f .....................|.4..->.EM_
1af60 36 38 4b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7c 20 35 20 20 2d 68K.......................|.5..-
1af80 3e 20 45 4d 5f 38 38 4b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7c >.EM_88K.......................|
1afa0 20 37 20 20 2d 3e 20 45 4d 5f 38 36 30 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .7..->.EM_860...................
1afc0 20 20 20 20 7c 20 38 20 20 2d 3e 20 45 4d 5f 4d 49 50 53 0a 20 20 20 20 20 20 20 20 20 20 20 20 ....|.8..->.EM_MIPS.............
1afe0 20 20 20 20 20 20 20 20 20 20 7c 20 31 30 20 2d 3e 20 45 4d 5f 4d 49 50 53 5f 52 53 34 5f 42 45 ..........|.10.->.EM_MIPS_RS4_BE
1b000 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7c 20 32 30 20 2d 3e 20 45 .......................|.20.->.E
1b020 4d 5f 50 50 43 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7c 20 5f 20 M_PPC.......................|._.
1b040 20 2d 3e 20 45 4d 5f 55 4e 4b 4e 4f 57 4e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .->.EM_UNKNOWN..................
1b060 20 20 20 20 20 65 6e 64 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 65 5f .....end;.....................e_
1b080 76 65 72 73 69 6f 6e 20 20 20 20 20 3d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 version.....=...................
1b0a0 20 20 20 20 62 65 67 69 6e 20 6d 61 74 63 68 20 65 5f 76 65 72 73 69 6f 6e 20 77 69 74 68 0a 20 ....begin.match.e_version.with..
1b0c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7c 20 30 6c 20 2d 3e 20 45 56 5f .....................|.0l.->.EV_
1b0e0 4e 4f 4e 45 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7c 20 31 6c 20 NONE.......................|.1l.
1b100 2d 3e 20 45 56 5f 43 55 52 52 45 4e 54 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ->.EV_CURRENT...................
1b120 20 20 20 20 7c 20 5f 20 2d 3e 20 45 56 5f 55 4e 4b 4e 4f 57 4e 0a 20 20 20 20 20 20 20 20 20 20 ....|._.->.EV_UNKNOWN...........
1b140 20 20 20 20 20 20 20 20 20 20 20 20 65 6e 64 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ............end;................
1b160 20 20 20 20 20 65 5f 65 6e 74 72 79 20 20 20 20 20 3d 20 65 5f 65 6e 74 72 79 3b 0a 20 20 20 20 .....e_entry.....=.e_entry;.....
1b180 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 65 5f 70 68 6f 66 66 20 20 20 20 20 3d 20 65 5f ................e_phoff.....=.e_
1b1a0 70 68 6f 66 66 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 65 5f 73 68 6f phoff;.....................e_sho
1b1c0 66 66 20 20 20 20 20 3d 20 65 5f 73 68 6f 66 66 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ff.....=.e_shoff;...............
1b1e0 20 20 20 20 20 20 65 5f 66 6c 61 67 73 20 20 20 20 20 3d 20 65 5f 66 6c 61 67 73 3b 0a 20 20 20 ......e_flags.....=.e_flags;....
1b200 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 65 5f 65 68 73 69 7a 65 20 20 20 20 3d 20 65 .................e_ehsize....=.e
1b220 5f 65 68 73 69 7a 65 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 65 5f 70 _ehsize;.....................e_p
1b240 68 65 6e 74 73 69 7a 65 20 3d 20 65 5f 70 68 65 6e 74 73 69 7a 65 3b 0a 20 20 20 20 20 20 20 20 hentsize.=.e_phentsize;.........
1b260 20 20 20 20 20 20 20 20 20 20 20 20 65 5f 70 68 6e 75 6d 20 20 20 20 20 3d 20 65 5f 70 68 6e 75 ............e_phnum.....=.e_phnu
1b280 6d 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 65 5f 73 68 65 6e 74 73 69 m;.....................e_shentsi
1b2a0 7a 65 20 3d 20 65 5f 73 68 65 6e 74 73 69 7a 65 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ze.=.e_shentsize;...............
1b2c0 20 20 20 20 20 20 65 5f 73 68 6e 75 6d 20 20 20 20 20 3d 20 65 5f 73 68 6e 75 6d 3b 0a 20 20 20 ......e_shnum.....=.e_shnum;....
1b2e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 65 5f 73 68 73 74 72 6e 64 78 20 20 3d 20 65 .................e_shstrndx..=.e
1b300 5f 73 68 73 74 72 6e 64 78 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7d 0a 20 _shstrndx;...................}..
1b320 20 20 20 20 20 20 20 20 20 20 20 29 0a 20 20 20 20 20 20 29 0a 0a 28 2a 2a 20 52 65 74 75 72 6e ...........).......)..(**.Return
1b340 73 20 74 68 65 20 66 69 6c 65 20 6f 66 66 73 65 74 20 6f 66 20 74 68 65 20 73 65 63 74 69 6f 6e s.the.file.offset.of.the.section
1b360 20 68 65 61 64 65 72 20 69 6e 64 65 78 65 64 20 2a 29 0a 6c 65 74 20 73 65 63 74 69 6f 6e 5f 68 .header.indexed.*).let.section_h
1b380 65 61 64 65 72 5f 6f 66 66 73 65 74 20 28 65 5f 68 64 72 3a 20 65 6c 66 33 32 5f 65 68 64 72 29 eader_offset.(e_hdr:.elf32_ehdr)
1b3a0 20 28 73 6e 64 78 3a 20 69 6e 74 29 3a 20 69 6e 74 20 3d 0a 20 20 53 61 66 65 2e 28 6f 66 5f 69 .(sndx:.int):.int.=...Safe.(of_i
1b3c0 6e 74 33 32 20 65 5f 68 64 72 2e 65 5f 73 68 6f 66 66 20 2b 20 28 73 6e 64 78 20 2a 20 65 5f 68 nt32.e_hdr.e_shoff.+.(sndx.*.e_h
1b3e0 64 72 2e 65 5f 73 68 65 6e 74 73 69 7a 65 29 29 0a 0a 28 2a 2a 20 52 65 74 75 72 6e 73 20 74 68 dr.e_shentsize))..(**.Returns.th
1b400 65 20 6e 64 78 2d 74 68 20 73 74 72 69 6e 67 20 69 6e 20 74 68 65 20 70 72 6f 76 69 64 65 64 20 e.ndx-th.string.in.the.provided.
1b420 62 69 74 73 74 72 69 6e 67 2c 20 61 63 63 6f 72 64 69 6e 67 20 74 6f 20 6e 75 6c 6c 0a 20 20 20 bitstring,.according.to.null....
1b440 20 63 68 61 72 61 63 74 65 72 73 20 2a 29 0a 6c 65 74 20 73 74 72 74 61 62 5f 73 74 72 69 6e 67 .characters.*).let.strtab_string
1b460 20 28 62 73 3a 20 62 69 74 73 74 72 69 6e 67 29 20 28 6e 64 78 3a 20 69 6e 74 29 3a 20 73 74 72 .(bs:.bitstring).(ndx:.int):.str
1b480 69 6e 67 20 3d 0a 20 20 6c 65 74 20 28 73 74 72 2c 20 6f 66 73 2c 20 5f 29 20 3d 20 62 73 20 69 ing.=...let.(str,.ofs,._).=.bs.i
1b4a0 6e 0a 20 20 6c 65 74 20 73 74 61 72 74 20 3d 20 28 6f 66 73 20 2f 20 38 20 2b 20 6e 64 78 29 20 n...let.start.=.(ofs./.8.+.ndx).
1b4c0 69 6e 0a 20 20 53 74 72 69 6e 67 2e 73 75 62 20 73 74 72 20 73 74 61 72 74 20 28 53 74 72 69 6e in...String.sub.str.start.(Strin
1b4e0 67 2e 69 6e 64 65 78 5f 66 72 6f 6d 20 73 74 72 20 73 74 61 72 74 20 27 5c 30 30 30 27 20 2d 20 g.index_from.str.start.'\000'.-.
1b500 73 74 61 72 74 29 0a 0a 28 2a 2a 20 52 65 61 64 73 20 61 6e 20 45 4c 46 20 73 65 63 74 69 6f 6e start)..(**.Reads.an.ELF.section
1b520 20 68 65 61 64 65 72 20 2a 29 0a 6c 65 74 20 72 65 61 64 5f 65 6c 66 33 32 5f 73 68 64 72 20 28 .header.*).let.read_elf32_shdr.(
1b540 65 5f 68 64 72 3a 20 65 6c 66 33 32 5f 65 68 64 72 29 20 28 62 73 3a 20 62 69 74 73 74 72 69 6e e_hdr:.elf32_ehdr).(bs:.bitstrin
1b560 67 29 20 28 73 74 72 74 61 62 3a 20 62 69 74 73 74 72 69 6e 67 29 0a 20 20 20 20 28 6e 75 6d 3a g).(strtab:.bitstring).....(num:
1b580 20 69 6e 74 29 3a 20 65 6c 66 33 32 5f 73 68 64 72 20 3d 0a 20 20 6c 65 74 20 65 20 3d 20 65 6c .int):.elf32_shdr.=...let.e.=.el
1b5a0 66 64 61 74 61 5f 74 6f 5f 65 6e 64 69 61 6e 20 65 5f 68 64 72 2e 65 5f 69 64 65 6e 74 2e 65 69 fdata_to_endian.e_hdr.e_ident.ei
1b5c0 5f 64 61 74 61 20 69 6e 0a 20 20 6c 65 74 20 62 69 74 5f 6f 66 73 20 3d 20 53 61 66 65 2e 28 0a _data.in...let.bit_ofs.=.Safe.(.
1b5e0 20 20 20 20 28 73 65 63 74 69 6f 6e 5f 68 65 61 64 65 72 5f 6f 66 66 73 65 74 20 65 5f 68 64 72 ....(section_header_offset.e_hdr
1b600 20 6e 75 6d 29 20 2a 20 38 0a 20 20 29 20 69 6e 0a 20 20 62 69 74 6d 61 74 63 68 20 62 73 20 77 .num).*.8...).in...bitmatch.bs.w
1b620 69 74 68 0a 20 20 7c 20 7b 20 73 68 5f 6e 61 6d 65 20 20 20 20 20 20 3a 20 33 32 20 3a 20 65 6e ith...|.{.sh_name......:.32.:.en
1b640 64 69 61 6e 28 65 29 2c 20 6f 66 66 73 65 74 28 62 69 74 5f 6f 66 73 29 20 3b 0a 20 20 20 20 20 dian(e),.offset(bit_ofs).;......
1b660 20 73 68 5f 74 79 70 65 20 20 20 20 20 20 3a 20 33 32 20 3a 20 65 6e 64 69 61 6e 28 65 29 20 3b .sh_type......:.32.:.endian(e).;
1b680 0a 20 20 20 20 20 20 73 68 5f 66 6c 61 67 73 20 20 20 20 20 3a 20 33 32 20 3a 20 65 6e 64 69 61 .......sh_flags.....:.32.:.endia
1b6a0 6e 28 65 29 20 3b 0a 20 20 20 20 20 20 73 68 5f 61 64 64 72 20 20 20 20 20 20 3a 20 33 32 20 3a n(e).;.......sh_addr......:.32.:
1b6c0 20 65 6e 64 69 61 6e 28 65 29 20 3b 0a 20 20 20 20 20 20 73 68 5f 6f 66 66 73 65 74 20 20 20 20 .endian(e).;.......sh_offset....
1b6e0 3a 20 33 32 20 3a 20 65 6e 64 69 61 6e 28 65 29 20 3b 0a 20 20 20 20 20 20 73 68 5f 73 69 7a 65 :.32.:.endian(e).;.......sh_size
1b700 20 20 20 20 20 20 3a 20 33 32 20 3a 20 65 6e 64 69 61 6e 28 65 29 20 3b 0a 20 20 20 20 20 20 73 ......:.32.:.endian(e).;.......s
1b720 68 5f 6c 69 6e 6b 20 20 20 20 20 20 3a 20 33 32 20 3a 20 65 6e 64 69 61 6e 28 65 29 20 3b 0a 20 h_link......:.32.:.endian(e).;..
1b740 20 20 20 20 20 73 68 5f 69 6e 66 6f 20 20 20 20 20 20 3a 20 33 32 20 3a 20 65 6e 64 69 61 6e 28 .....sh_info......:.32.:.endian(
1b760 65 29 20 3b 0a 20 20 20 20 20 20 73 68 5f 61 64 64 72 61 6c 69 67 6e 20 3a 20 33 32 20 3a 20 65 e).;.......sh_addralign.:.32.:.e
1b780 6e 64 69 61 6e 28 65 29 20 3b 0a 20 20 20 20 20 20 73 68 5f 65 6e 74 73 69 7a 65 20 20 20 3a 20 ndian(e).;.......sh_entsize...:.
1b7a0 33 32 20 3a 20 65 6e 64 69 61 6e 28 65 29 20 7d 20 2d 3e 0a 20 20 20 20 20 20 7b 0a 20 20 20 20 32.:.endian(e).}.->.......{.....
1b7c0 20 20 20 20 73 68 5f 6e 61 6d 65 20 20 20 20 20 20 20 20 20 3d 20 73 74 72 74 61 62 5f 73 74 72 ....sh_name.........=.strtab_str
1b7e0 69 6e 67 20 73 74 72 74 61 62 20 28 53 61 66 65 33 32 2e 74 6f 5f 69 6e 74 20 73 68 5f 6e 61 6d ing.strtab.(Safe32.to_int.sh_nam
1b800 65 29 3b 0a 20 20 20 20 20 20 20 20 73 68 5f 74 79 70 65 20 20 20 20 20 20 20 20 20 3d 0a 20 20 e);.........sh_type.........=...
1b820 20 20 20 20 20 20 20 20 62 65 67 69 6e 20 6d 61 74 63 68 20 73 68 5f 74 79 70 65 20 77 69 74 68 ........begin.match.sh_type.with
1b840 0a 20 20 20 20 20 20 20 20 20 20 7c 20 20 30 6c 20 2d 3e 20 53 48 54 5f 4e 55 4c 4c 0a 20 20 20 ...........|..0l.->.SHT_NULL....
1b860 20 20 20 20 20 20 20 7c 20 20 31 6c 20 2d 3e 20 53 48 54 5f 50 52 4f 47 42 49 54 53 0a 20 20 20 .......|..1l.->.SHT_PROGBITS....
1b880 20 20 20 20 20 20 20 7c 20 20 32 6c 20 2d 3e 20 53 48 54 5f 53 59 4d 54 41 42 0a 20 20 20 20 20 .......|..2l.->.SHT_SYMTAB......
1b8a0 20 20 20 20 20 7c 20 20 33 6c 20 2d 3e 20 53 48 54 5f 53 54 52 54 41 42 0a 20 20 20 20 20 20 20 .....|..3l.->.SHT_STRTAB........
1b8c0 20 20 20 7c 20 20 34 6c 20 2d 3e 20 53 48 54 5f 52 45 4c 41 0a 20 20 20 20 20 20 20 20 20 20 7c ...|..4l.->.SHT_RELA...........|
1b8e0 20 20 35 6c 20 2d 3e 20 53 48 54 5f 48 41 53 48 0a 20 20 20 20 20 20 20 20 20 20 7c 20 20 36 6c ..5l.->.SHT_HASH...........|..6l
1b900 20 2d 3e 20 53 48 54 5f 44 59 4e 41 4d 49 43 0a 20 20 20 20 20 20 20 20 20 20 7c 20 20 37 6c 20 .->.SHT_DYNAMIC...........|..7l.
1b920 2d 3e 20 53 48 54 5f 4e 4f 54 45 0a 20 20 20 20 20 20 20 20 20 20 7c 20 20 38 6c 20 2d 3e 20 53 ->.SHT_NOTE...........|..8l.->.S
1b940 48 54 5f 4e 4f 42 49 54 53 0a 20 20 20 20 20 20 20 20 20 20 7c 20 20 39 6c 20 2d 3e 20 53 48 54 HT_NOBITS...........|..9l.->.SHT
1b960 5f 52 45 4c 0a 20 20 20 20 20 20 20 20 20 20 7c 20 31 30 6c 20 2d 3e 20 53 48 54 5f 53 48 4c 49 _REL...........|.10l.->.SHT_SHLI
1b980 42 0a 20 20 20 20 20 20 20 20 20 20 7c 20 31 31 6c 20 2d 3e 20 53 48 54 5f 44 59 4e 53 59 4d 0a B...........|.11l.->.SHT_DYNSYM.
1b9a0 20 20 20 20 20 20 20 20 20 20 7c 20 5f 20 20 20 2d 3e 20 53 48 54 5f 55 4e 4b 4e 4f 57 4e 0a 20 ..........|._...->.SHT_UNKNOWN..
1b9c0 20 20 20 20 20 20 20 20 20 65 6e 64 3b 0a 20 20 20 20 20 20 20 20 73 68 5f 66 6c 61 67 73 20 20 .........end;.........sh_flags..
1b9e0 20 20 20 3d 20 73 68 5f 66 6c 61 67 73 20 20 20 20 20 3b 0a 20 20 20 20 20 20 20 20 73 68 5f 61 ...=.sh_flags.....;.........sh_a
1ba00 64 64 72 20 20 20 20 20 20 3d 20 73 68 5f 61 64 64 72 20 20 20 20 20 20 3b 0a 20 20 20 20 20 20 ddr......=.sh_addr......;.......
1ba20 20 20 73 68 5f 6f 66 66 73 65 74 20 20 20 20 3d 20 73 68 5f 6f 66 66 73 65 74 20 20 20 20 3b 0a ..sh_offset....=.sh_offset....;.
1ba40 20 20 20 20 20 20 20 20 73 68 5f 73 69 7a 65 20 20 20 20 20 20 3d 20 73 68 5f 73 69 7a 65 20 20 ........sh_size......=.sh_size..
1ba60 20 20 20 20 3b 0a 20 20 20 20 20 20 20 20 73 68 5f 6c 69 6e 6b 20 20 20 20 20 20 3d 20 73 68 5f ....;.........sh_link......=.sh_
1ba80 6c 69 6e 6b 20 20 20 20 20 20 3b 0a 20 20 20 20 20 20 20 20 73 68 5f 69 6e 66 6f 20 20 20 20 20 link......;.........sh_info.....
1baa0 20 3d 20 73 68 5f 69 6e 66 6f 20 20 20 20 20 20 3b 0a 20 20 20 20 20 20 20 20 73 68 5f 61 64 64 .=.sh_info......;.........sh_add
1bac0 72 61 6c 69 67 6e 20 3d 20 73 68 5f 61 64 64 72 61 6c 69 67 6e 20 3b 0a 20 20 20 20 20 20 20 20 ralign.=.sh_addralign.;.........
1bae0 73 68 5f 65 6e 74 73 69 7a 65 20 20 20 3d 20 73 68 5f 65 6e 74 73 69 7a 65 20 20 20 3b 0a 20 20 sh_entsize...=.sh_entsize...;...
1bb00 20 20 20 20 7d 0a 0a 6c 65 74 20 73 74 72 69 6e 67 5f 6f 66 5f 69 6e 73 74 72 75 63 74 69 6f 6e ....}..let.string_of_instruction
1bb20 20 3d 20 66 75 6e 63 74 69 6f 6e 0a 7c 20 50 61 64 64 20 20 20 20 20 20 28 69 30 2c 20 69 31 2c .=.function.|.Padd......(i0,.i1,
1bb40 20 69 32 29 20 20 20 20 20 20 20 20 2d 3e 20 22 50 61 64 64 28 22 20 5e 20 73 74 72 69 6e 67 5f .i2)........->."Padd(".^.string_
1bb60 6f 66 5f 69 72 65 67 20 69 30 20 5e 20 22 2c 20 22 20 5e 20 73 74 72 69 6e 67 5f 6f 66 5f 69 72 of_ireg.i0.^.",.".^.string_of_ir
1bb80 65 67 20 69 31 20 5e 20 22 2c 20 22 20 5e 20 73 74 72 69 6e 67 5f 6f 66 5f 69 72 65 67 20 69 32 eg.i1.^.",.".^.string_of_ireg.i2
1bba0 20 5e 20 22 29 22 0a 7c 20 50 61 64 64 65 20 20 20 20 20 28 69 30 2c 20 69 31 2c 20 69 32 29 20 .^.")".|.Padde.....(i0,.i1,.i2).
1bbc0 20 20 20 20 20 20 20 2d 3e 20 22 50 61 64 64 65 28 22 20 5e 20 73 74 72 69 6e 67 5f 6f 66 5f 69 .......->."Padde(".^.string_of_i
1bbe0 72 65 67 20 69 30 20 5e 20 22 2c 20 22 20 5e 20 73 74 72 69 6e 67 5f 6f 66 5f 69 72 65 67 20 69 reg.i0.^.",.".^.string_of_ireg.i
1bc00 31 20 5e 20 22 2c 20 22 20 5e 20 73 74 72 69 6e 67 5f 6f 66 5f 69 72 65 67 20 69 32 20 5e 20 22 1.^.",.".^.string_of_ireg.i2.^."
1bc20 29 22 0a 7c 20 50 61 64 64 69 20 20 20 20 20 28 69 30 2c 20 69 31 2c 20 63 32 29 20 20 20 20 20 )".|.Paddi.....(i0,.i1,.c2).....
1bc40 20 20 20 2d 3e 20 22 50 61 64 64 69 28 22 20 5e 20 73 74 72 69 6e 67 5f 6f 66 5f 69 72 65 67 20 ...->."Paddi(".^.string_of_ireg.
1bc60 69 30 20 5e 20 22 2c 20 22 20 5e 20 73 74 72 69 6e 67 5f 6f 66 5f 69 72 65 67 20 69 31 20 5e 20 i0.^.",.".^.string_of_ireg.i1.^.
1bc80 22 2c 20 22 20 5e 20 73 74 72 69 6e 67 5f 6f 66 5f 63 6f 6e 73 74 61 6e 74 20 63 32 20 5e 20 22 ",.".^.string_of_constant.c2.^."
1bca0 29 22 0a 7c 20 50 61 64 64 69 63 20 20 20 20 28 69 30 2c 20 69 31 2c 20 63 32 29 20 20 20 20 20 )".|.Paddic....(i0,.i1,.c2).....
1bcc0 20 20 20 2d 3e 20 22 50 61 64 64 69 63 28 22 20 5e 20 73 74 72 69 6e 67 5f 6f 66 5f 69 72 65 67 ...->."Paddic(".^.string_of_ireg
1bce0 20 69 30 20 5e 20 22 2c 20 22 20 5e 20 73 74 72 69 6e 67 5f 6f 66 5f 69 72 65 67 20 69 31 20 5e .i0.^.",.".^.string_of_ireg.i1.^
1bd00 20 22 2c 20 22 20 5e 20 73 74 72 69 6e 67 5f 6f 66 5f 63 6f 6e 73 74 61 6e 74 20 63 32 20 5e 20 .",.".^.string_of_constant.c2.^.
1bd20 22 29 22 0a 7c 20 50 61 64 64 69 73 20 20 20 20 28 69 30 2c 20 69 31 2c 20 63 32 29 20 20 20 20 ")".|.Paddis....(i0,.i1,.c2)....
1bd40 20 20 20 20 2d 3e 20 22 50 61 64 64 69 73 28 22 20 5e 20 73 74 72 69 6e 67 5f 6f 66 5f 69 72 65 ....->."Paddis(".^.string_of_ire
1bd60 67 20 69 30 20 5e 20 22 2c 20 22 20 5e 20 73 74 72 69 6e 67 5f 6f 66 5f 69 72 65 67 20 69 31 20 g.i0.^.",.".^.string_of_ireg.i1.
1bd80 5e 20 22 2c 20 22 20 5e 20 73 74 72 69 6e 67 5f 6f 66 5f 63 6f 6e 73 74 61 6e 74 20 63 32 20 5e ^.",.".^.string_of_constant.c2.^
1bda0 20 22 29 22 0a 7c 20 50 61 64 64 7a 65 20 20 20 20 28 69 30 2c 20 69 31 29 20 20 20 20 20 20 20 .")".|.Paddze....(i0,.i1).......
1bdc0 20 20 20 20 20 2d 3e 20 22 50 61 64 64 7a 65 28 22 20 5e 20 73 74 72 69 6e 67 5f 6f 66 5f 69 72 .....->."Paddze(".^.string_of_ir
1bde0 65 67 20 69 30 20 5e 20 22 2c 20 22 20 5e 20 73 74 72 69 6e 67 5f 6f 66 5f 69 72 65 67 20 69 31 eg.i0.^.",.".^.string_of_ireg.i1
1be00 20 5e 20 22 29 22 0a 7c 20 50 61 6c 6c 6f 63 66 72 61 6d 65 28 63 30 2c 20 69 31 29 20 20 20 20 .^.")".|.Pallocframe(c0,.i1)....
1be20 20 20 20 20 20 20 20 20 2d 3e 20 22 50 61 6c 6c 6f 63 66 72 61 6d 65 28 22 20 5e 20 73 74 72 69 ........->."Pallocframe(".^.stri
1be40 6e 67 5f 6f 66 5f 63 6f 71 5f 5a 20 63 30 20 5e 20 22 2c 20 22 20 5e 20 73 74 72 69 6e 67 5f 6f ng_of_coq_Z.c0.^.",.".^.string_o
1be60 66 5f 69 69 6e 74 20 69 31 20 5e 20 22 29 22 0a 7c 20 50 61 6e 64 5f 20 20 20 20 20 28 69 30 2c f_iint.i1.^.")".|.Pand_.....(i0,
1be80 20 69 31 2c 20 69 32 29 20 20 20 20 20 20 20 20 2d 3e 20 22 50 61 6e 64 5f 28 22 20 5e 20 73 74 .i1,.i2)........->."Pand_(".^.st
1bea0 72 69 6e 67 5f 6f 66 5f 69 72 65 67 20 69 30 20 5e 20 22 2c 20 22 20 5e 20 73 74 72 69 6e 67 5f ring_of_ireg.i0.^.",.".^.string_
1bec0 6f 66 5f 69 72 65 67 20 69 31 20 5e 20 22 2c 20 22 20 5e 20 73 74 72 69 6e 67 5f 6f 66 5f 69 72 of_ireg.i1.^.",.".^.string_of_ir
1bee0 65 67 20 69 32 20 5e 20 22 29 22 0a 7c 20 50 61 6e 64 63 20 20 20 20 20 28 69 30 2c 20 69 31 2c eg.i2.^.")".|.Pandc.....(i0,.i1,
1bf00 20 69 32 29 20 20 20 20 20 20 20 20 2d 3e 20 22 50 61 6e 64 63 28 22 20 5e 20 73 74 72 69 6e 67 .i2)........->."Pandc(".^.string
1bf20 5f 6f 66 5f 69 72 65 67 20 69 30 20 5e 20 22 2c 20 22 20 5e 20 73 74 72 69 6e 67 5f 6f 66 5f 69 _of_ireg.i0.^.",.".^.string_of_i
1bf40 72 65 67 20 69 31 20 5e 20 22 2c 20 22 20 5e 20 73 74 72 69 6e 67 5f 6f 66 5f 69 72 65 67 20 69 reg.i1.^.",.".^.string_of_ireg.i
1bf60 32 20 5e 20 22 29 22 0a 7c 20 50 61 6e 64 69 5f 20 20 20 20 28 69 30 2c 20 69 31 2c 20 63 32 29 2.^.")".|.Pandi_....(i0,.i1,.c2)
1bf80 20 20 20 20 20 20 20 20 2d 3e 20 22 50 61 6e 64 69 5f 28 22 20 5e 20 73 74 72 69 6e 67 5f 6f 66 ........->."Pandi_(".^.string_of
1bfa0 5f 69 72 65 67 20 69 30 20 5e 20 22 2c 20 22 20 5e 20 73 74 72 69 6e 67 5f 6f 66 5f 69 72 65 67 _ireg.i0.^.",.".^.string_of_ireg
1bfc0 20 69 31 20 5e 20 22 2c 20 22 20 5e 20 73 74 72 69 6e 67 5f 6f 66 5f 63 6f 6e 73 74 61 6e 74 20 .i1.^.",.".^.string_of_constant.
1bfe0 63 32 20 5e 20 22 29 22 0a 7c 20 50 61 6e 64 69 73 5f 20 20 20 28 69 30 2c 20 69 31 2c 20 63 32 c2.^.")".|.Pandis_...(i0,.i1,.c2
1c000 29 20 20 20 20 20 20 20 20 2d 3e 20 22 50 61 6e 64 69 73 5f 28 22 20 5e 20 73 74 72 69 6e 67 5f )........->."Pandis_(".^.string_
1c020 6f 66 5f 69 72 65 67 20 69 30 20 5e 20 22 2c 20 22 20 5e 20 73 74 72 69 6e 67 5f 6f 66 5f 69 72 of_ireg.i0.^.",.".^.string_of_ir
1c040 65 67 20 69 31 20 5e 20 22 2c 20 22 20 5e 20 73 74 72 69 6e 67 5f 6f 66 5f 63 6f 6e 73 74 61 6e eg.i1.^.",.".^.string_of_constan
1c060 74 20 63 32 20 5e 20 22 29 22 0a 7c 20 50 62 20 20 20 20 20 20 20 20 28 6c 30 29 20 20 20 20 20 t.c2.^.")".|.Pb........(l0).....
1c080 20 20 20 20 20 20 20 20 20 20 20 2d 3e 20 22 50 62 28 22 20 5e 20 73 74 72 69 6e 67 5f 6f 66 5f ...........->."Pb(".^.string_of_
1c0a0 6c 61 62 65 6c 20 6c 30 20 5e 20 22 29 22 0a 7c 20 50 62 63 74 72 20 20 20 20 20 20 20 20 20 20 label.l0.^.")".|.Pbctr..........
1c0c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2d 3e 20 22 50 62 63 74 72 22 0a 7c 20 50 62 63 74 ...............->."Pbctr".|.Pbct
1c0e0 72 6c 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2d 3e 20 22 50 62 rl........................->."Pb
1c100 63 74 72 6c 22 0a 7c 20 50 62 66 20 20 20 20 20 20 20 28 63 30 2c 20 6c 31 29 20 20 20 20 20 20 ctrl".|.Pbf.......(c0,.l1)......
1c120 20 20 20 20 20 20 2d 3e 20 22 50 62 66 28 22 20 5e 20 73 74 72 69 6e 67 5f 6f 66 5f 63 72 62 69 ......->."Pbf(".^.string_of_crbi
1c140 74 20 63 30 20 5e 20 22 2c 20 22 20 5e 20 73 74 72 69 6e 67 5f 6f 66 5f 6c 61 62 65 6c 20 6c 31 t.c0.^.",.".^.string_of_label.l1
1c160 20 5e 20 22 29 22 0a 7c 20 50 62 6c 20 20 20 20 20 20 20 28 69 30 29 20 20 20 20 20 20 20 20 20 .^.")".|.Pbl.......(i0).........
1c180 20 20 20 20 20 20 20 2d 3e 20 22 50 62 6c 28 22 20 5e 20 73 74 72 69 6e 67 5f 6f 66 5f 69 64 65 .......->."Pbl(".^.string_of_ide
1c1a0 6e 74 20 69 30 20 5e 20 22 29 22 0a 7c 20 50 62 73 20 20 20 20 20 20 20 28 69 30 29 20 20 20 20 nt.i0.^.")".|.Pbs.......(i0)....
1c1c0 20 20 20 20 20 20 20 20 20 20 20 20 2d 3e 20 22 50 62 73 28 22 20 5e 20 73 74 72 69 6e 67 5f 6f ............->."Pbs(".^.string_o
1c1e0 66 5f 69 64 65 6e 74 20 69 30 20 5e 20 22 29 22 0a 7c 20 50 62 6c 72 20 20 20 20 20 20 20 20 20 f_ident.i0.^.")".|.Pblr.........
1c200 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2d 3e 20 22 50 62 6c 72 22 0a 7c 20 50 62 74 .................->."Pblr".|.Pbt
1c220 20 20 20 20 20 20 20 28 63 30 2c 20 6c 31 29 20 20 20 20 20 20 20 20 20 20 20 20 2d 3e 20 22 50 .......(c0,.l1)............->."P
1c240 62 74 28 22 20 5e 20 73 74 72 69 6e 67 5f 6f 66 5f 63 72 62 69 74 20 63 30 20 5e 20 22 2c 20 22 bt(".^.string_of_crbit.c0.^.",."
1c260 20 5e 20 73 74 72 69 6e 67 5f 6f 66 5f 6c 61 62 65 6c 20 6c 31 20 5e 20 22 29 22 0a 7c 20 50 62 .^.string_of_label.l1.^.")".|.Pb
1c280 74 62 6c 20 20 20 20 20 28 69 30 2c 20 6c 31 29 20 20 20 20 20 20 20 20 20 20 20 20 2d 3e 20 22 tbl.....(i0,.l1)............->."
1c2a0 50 62 74 62 6c 28 22 20 5e 20 73 74 72 69 6e 67 5f 6f 66 5f 69 72 65 67 20 69 30 20 5e 20 22 2c Pbtbl(".^.string_of_ireg.i0.^.",
1c2c0 20 22 20 5e 20 73 74 72 69 6e 67 5f 6f 66 5f 6c 69 73 74 20 73 74 72 69 6e 67 5f 6f 66 5f 6c 61 .".^.string_of_list.string_of_la
1c2e0 62 65 6c 20 22 2c 20 22 20 6c 31 20 5e 20 22 29 22 0a 7c 20 50 63 6d 70 6c 77 20 20 20 20 28 69 bel.",.".l1.^.")".|.Pcmplw....(i
1c300 30 2c 20 69 31 29 20 20 20 20 20 20 20 20 20 20 20 20 2d 3e 20 22 50 63 6d 70 6c 77 28 22 20 5e 0,.i1)............->."Pcmplw(".^
1c320 20 73 74 72 69 6e 67 5f 6f 66 5f 69 72 65 67 20 69 30 20 5e 20 22 2c 20 22 20 5e 20 73 74 72 69 .string_of_ireg.i0.^.",.".^.stri
1c340 6e 67 5f 6f 66 5f 69 72 65 67 20 69 31 20 5e 20 22 29 22 0a 7c 20 50 63 6d 70 6c 77 69 20 20 20 ng_of_ireg.i1.^.")".|.Pcmplwi...
1c360 28 69 30 2c 20 63 31 29 20 20 20 20 20 20 20 20 20 20 20 20 2d 3e 20 22 50 63 6d 70 6c 77 69 28 (i0,.c1)............->."Pcmplwi(
1c380 22 20 5e 20 73 74 72 69 6e 67 5f 6f 66 5f 69 72 65 67 20 69 30 20 5e 20 22 2c 20 22 20 5e 20 73 ".^.string_of_ireg.i0.^.",.".^.s
1c3a0 74 72 69 6e 67 5f 6f 66 5f 63 6f 6e 73 74 61 6e 74 20 63 31 20 5e 20 22 29 22 0a 7c 20 50 63 6d tring_of_constant.c1.^.")".|.Pcm
1c3c0 70 77 20 20 20 20 20 28 69 30 2c 20 69 31 29 20 20 20 20 20 20 20 20 20 20 20 20 2d 3e 20 22 50 pw.....(i0,.i1)............->."P
1c3e0 63 6d 70 77 28 22 20 5e 20 73 74 72 69 6e 67 5f 6f 66 5f 69 72 65 67 20 69 30 20 5e 20 22 2c 20 cmpw(".^.string_of_ireg.i0.^.",.
1c400 22 20 5e 20 73 74 72 69 6e 67 5f 6f 66 5f 69 72 65 67 20 69 31 20 5e 20 22 29 22 0a 7c 20 50 63 ".^.string_of_ireg.i1.^.")".|.Pc
1c420 6d 70 77 69 20 20 20 20 28 69 30 2c 20 63 31 29 20 20 20 20 20 20 20 20 20 20 20 20 2d 3e 20 22 mpwi....(i0,.c1)............->."
1c440 50 63 6d 70 77 69 28 22 20 5e 20 73 74 72 69 6e 67 5f 6f 66 5f 69 72 65 67 20 69 30 20 5e 20 22 Pcmpwi(".^.string_of_ireg.i0.^."
1c460 2c 20 22 20 5e 20 73 74 72 69 6e 67 5f 6f 66 5f 63 6f 6e 73 74 61 6e 74 20 63 31 20 5e 20 22 29 ,.".^.string_of_constant.c1.^.")
1c480 22 0a 7c 20 50 63 72 6f 72 20 20 20 20 20 28 63 30 2c 20 63 31 2c 20 63 32 29 20 20 20 20 20 20 ".|.Pcror.....(c0,.c1,.c2)......
1c4a0 20 20 2d 3e 20 22 50 63 72 6f 72 28 22 20 5e 20 73 74 72 69 6e 67 5f 6f 66 5f 63 72 62 69 74 20 ..->."Pcror(".^.string_of_crbit.
1c4c0 63 30 20 5e 20 22 2c 20 22 20 5e 20 73 74 72 69 6e 67 5f 6f 66 5f 63 72 62 69 74 20 63 31 20 5e c0.^.",.".^.string_of_crbit.c1.^
1c4e0 20 22 2c 20 22 20 5e 20 73 74 72 69 6e 67 5f 6f 66 5f 63 72 62 69 74 20 63 32 20 5e 20 22 29 22 .",.".^.string_of_crbit.c2.^.")"
1c500 0a 7c 20 50 64 69 76 77 20 20 20 20 20 28 69 30 2c 20 69 31 2c 20 69 32 29 20 20 20 20 20 20 20 .|.Pdivw.....(i0,.i1,.i2).......
1c520 20 2d 3e 20 22 50 64 69 76 77 28 22 20 5e 20 73 74 72 69 6e 67 5f 6f 66 5f 69 72 65 67 20 69 30 .->."Pdivw(".^.string_of_ireg.i0
1c540 20 5e 20 22 2c 20 22 20 5e 20 73 74 72 69 6e 67 5f 6f 66 5f 69 72 65 67 20 69 31 20 5e 20 22 2c .^.",.".^.string_of_ireg.i1.^.",
1c560 20 22 20 5e 20 73 74 72 69 6e 67 5f 6f 66 5f 69 72 65 67 20 69 32 20 5e 20 22 29 22 0a 7c 20 50 .".^.string_of_ireg.i2.^.")".|.P
1c580 64 69 76 77 75 20 20 20 20 28 69 30 2c 20 69 31 2c 20 69 32 29 20 20 20 20 20 20 20 20 2d 3e 20 divwu....(i0,.i1,.i2)........->.
1c5a0 22 50 64 69 76 77 75 28 22 20 5e 20 73 74 72 69 6e 67 5f 6f 66 5f 69 72 65 67 20 69 30 20 5e 20 "Pdivwu(".^.string_of_ireg.i0.^.
1c5c0 22 2c 20 22 20 5e 20 73 74 72 69 6e 67 5f 6f 66 5f 69 72 65 67 20 69 31 20 5e 20 22 2c 20 22 20 ",.".^.string_of_ireg.i1.^.",.".
1c5e0 5e 20 73 74 72 69 6e 67 5f 6f 66 5f 69 72 65 67 20 69 32 20 5e 20 22 29 22 0a 7c 20 50 65 71 76 ^.string_of_ireg.i2.^.")".|.Peqv
1c600 20 20 20 20 20 20 28 69 30 2c 20 69 31 2c 20 69 32 29 20 20 20 20 20 20 20 20 2d 3e 20 22 50 65 ......(i0,.i1,.i2)........->."Pe
1c620 71 76 28 22 20 5e 20 73 74 72 69 6e 67 5f 6f 66 5f 69 72 65 67 20 69 30 20 5e 20 22 2c 20 22 20 qv(".^.string_of_ireg.i0.^.",.".
1c640 5e 20 73 74 72 69 6e 67 5f 6f 66 5f 69 72 65 67 20 69 31 20 5e 20 22 2c 20 22 20 5e 20 73 74 72 ^.string_of_ireg.i1.^.",.".^.str
1c660 69 6e 67 5f 6f 66 5f 69 72 65 67 20 69 32 20 5e 20 22 29 22 0a 7c 20 50 65 78 74 73 62 20 20 20 ing_of_ireg.i2.^.")".|.Pextsb...
1c680 20 28 69 30 2c 20 69 31 29 20 20 20 20 20 20 20 20 20 20 20 20 2d 3e 20 22 50 65 78 74 73 62 28 .(i0,.i1)............->."Pextsb(
1c6a0 22 20 5e 20 73 74 72 69 6e 67 5f 6f 66 5f 69 72 65 67 20 69 30 20 5e 20 22 2c 20 22 20 5e 20 73 ".^.string_of_ireg.i0.^.",.".^.s
1c6c0 74 72 69 6e 67 5f 6f 66 5f 69 72 65 67 20 69 31 20 5e 20 22 29 22 0a 7c 20 50 65 78 74 73 68 20 tring_of_ireg.i1.^.")".|.Pextsh.
1c6e0 20 20 20 28 69 30 2c 20 69 31 29 20 20 20 20 20 20 20 20 20 20 20 20 2d 3e 20 22 50 65 78 74 73 ...(i0,.i1)............->."Pexts
1c700 68 28 22 20 5e 20 73 74 72 69 6e 67 5f 6f 66 5f 69 72 65 67 20 69 30 20 5e 20 22 2c 20 22 20 5e h(".^.string_of_ireg.i0.^.",.".^
1c720 20 73 74 72 69 6e 67 5f 6f 66 5f 69 72 65 67 20 69 31 20 5e 20 22 29 22 0a 7c 20 50 66 72 65 65 .string_of_ireg.i1.^.")".|.Pfree
1c740 66 72 61 6d 65 28 63 30 2c 20 69 31 29 20 20 20 20 20 20 20 20 20 20 20 20 2d 3e 20 22 50 66 72 frame(c0,.i1)............->."Pfr
1c760 65 65 66 72 61 6d 65 28 22 20 5e 20 73 74 72 69 6e 67 5f 6f 66 5f 63 6f 71 5f 5a 20 63 30 20 5e eeframe(".^.string_of_coq_Z.c0.^
1c780 20 22 2c 20 22 20 5e 20 73 74 72 69 6e 67 5f 6f 66 5f 69 69 6e 74 20 69 31 20 5e 20 22 29 22 0a .",.".^.string_of_iint.i1.^.")".
1c7a0 7c 20 50 66 61 62 73 20 20 20 20 20 28 66 30 2c 20 66 31 29 20 20 20 20 20 20 20 20 20 20 20 20 |.Pfabs.....(f0,.f1)............
1c7c0 2d 3e 20 22 50 66 61 62 73 28 22 20 5e 20 73 74 72 69 6e 67 5f 6f 66 5f 66 72 65 67 20 66 30 20 ->."Pfabs(".^.string_of_freg.f0.
1c7e0 5e 20 22 2c 20 22 20 5e 20 73 74 72 69 6e 67 5f 6f 66 5f 66 72 65 67 20 66 31 20 5e 20 22 29 22 ^.",.".^.string_of_freg.f1.^.")"
1c800 0a 7c 20 50 66 61 64 64 20 20 20 20 20 28 66 30 2c 20 66 31 2c 20 66 32 29 20 20 20 20 20 20 20 .|.Pfadd.....(f0,.f1,.f2).......
1c820 20 2d 3e 20 22 50 66 61 64 64 28 22 20 5e 20 73 74 72 69 6e 67 5f 6f 66 5f 66 72 65 67 20 66 30 .->."Pfadd(".^.string_of_freg.f0
1c840 20 5e 20 22 2c 20 22 20 5e 20 73 74 72 69 6e 67 5f 6f 66 5f 66 72 65 67 20 66 31 20 5e 20 22 2c .^.",.".^.string_of_freg.f1.^.",
1c860 20 22 20 5e 20 73 74 72 69 6e 67 5f 6f 66 5f 66 72 65 67 20 66 32 20 5e 20 22 29 22 0a 7c 20 50 .".^.string_of_freg.f2.^.")".|.P
1c880 66 63 6d 70 75 20 20 20 20 28 66 30 2c 20 66 31 29 20 20 20 20 20 20 20 20 20 20 20 20 2d 3e 20 fcmpu....(f0,.f1)............->.
1c8a0 22 50 66 63 6d 70 75 28 22 20 5e 20 73 74 72 69 6e 67 5f 6f 66 5f 66 72 65 67 20 66 30 20 5e 20 "Pfcmpu(".^.string_of_freg.f0.^.
1c8c0 22 2c 20 22 20 5e 20 73 74 72 69 6e 67 5f 6f 66 5f 66 72 65 67 20 66 31 20 5e 20 22 29 22 0a 7c ",.".^.string_of_freg.f1.^.")".|
1c8e0 20 50 66 63 74 69 20 20 20 20 20 28 69 30 2c 20 66 31 29 20 20 20 20 20 20 20 20 20 20 20 20 2d .Pfcti.....(i0,.f1)............-
1c900 3e 20 22 50 66 63 74 69 28 22 20 5e 20 73 74 72 69 6e 67 5f 6f 66 5f 69 72 65 67 20 69 30 20 5e >."Pfcti(".^.string_of_ireg.i0.^
1c920 20 22 2c 20 22 20 5e 20 73 74 72 69 6e 67 5f 6f 66 5f 66 72 65 67 20 66 31 20 5e 20 22 29 22 0a .",.".^.string_of_freg.f1.^.")".
1c940 7c 20 50 66 64 69 76 20 20 20 20 20 28 66 30 2c 20 66 31 2c 20 66 32 29 20 20 20 20 20 20 20 20 |.Pfdiv.....(f0,.f1,.f2)........
1c960 2d 3e 20 22 50 66 64 69 76 28 22 20 5e 20 73 74 72 69 6e 67 5f 6f 66 5f 66 72 65 67 20 66 30 20 ->."Pfdiv(".^.string_of_freg.f0.
1c980 5e 20 22 2c 20 22 20 5e 20 73 74 72 69 6e 67 5f 6f 66 5f 66 72 65 67 20 66 31 20 5e 20 22 2c 20 ^.",.".^.string_of_freg.f1.^.",.
1c9a0 22 20 5e 20 73 74 72 69 6e 67 5f 6f 66 5f 66 72 65 67 20 66 32 20 5e 20 22 29 22 0a 7c 20 50 66 ".^.string_of_freg.f2.^.")".|.Pf
1c9c0 6d 61 6b 65 20 20 20 20 28 66 30 2c 20 69 31 2c 20 69 32 29 20 20 20 20 20 20 20 20 2d 3e 20 22 make....(f0,.i1,.i2)........->."
1c9e0 50 66 6d 61 6b 65 28 22 20 5e 20 73 74 72 69 6e 67 5f 6f 66 5f 66 72 65 67 20 66 30 20 5e 20 22 Pfmake(".^.string_of_freg.f0.^."
1ca00 2c 20 22 20 5e 20 73 74 72 69 6e 67 5f 6f 66 5f 69 72 65 67 20 69 31 20 5e 20 22 2c 20 22 20 5e ,.".^.string_of_ireg.i1.^.",.".^
1ca20 20 73 74 72 69 6e 67 5f 6f 66 5f 69 72 65 67 20 69 32 20 5e 20 22 29 22 0a 7c 20 50 66 6d 72 20 .string_of_ireg.i2.^.")".|.Pfmr.
1ca40 20 20 20 20 20 28 66 30 2c 20 66 31 29 20 20 20 20 20 20 20 20 20 20 20 20 2d 3e 20 22 50 66 6d .....(f0,.f1)............->."Pfm
1ca60 72 28 22 20 5e 20 73 74 72 69 6e 67 5f 6f 66 5f 66 72 65 67 20 66 30 20 5e 20 22 2c 20 22 20 5e r(".^.string_of_freg.f0.^.",.".^
1ca80 20 73 74 72 69 6e 67 5f 6f 66 5f 66 72 65 67 20 66 31 20 5e 20 22 29 22 0a 7c 20 50 66 6d 75 6c .string_of_freg.f1.^.")".|.Pfmul
1caa0 20 20 20 20 20 28 66 30 2c 20 66 31 2c 20 66 32 29 20 20 20 20 20 20 20 20 2d 3e 20 22 50 66 6d .....(f0,.f1,.f2)........->."Pfm
1cac0 75 6c 28 22 20 5e 20 73 74 72 69 6e 67 5f 6f 66 5f 66 72 65 67 20 66 30 20 5e 20 22 2c 20 22 20 ul(".^.string_of_freg.f0.^.",.".
1cae0 5e 20 73 74 72 69 6e 67 5f 6f 66 5f 66 72 65 67 20 66 31 20 5e 20 22 2c 20 22 20 5e 20 73 74 72 ^.string_of_freg.f1.^.",.".^.str
1cb00 69 6e 67 5f 6f 66 5f 66 72 65 67 20 66 32 20 5e 20 22 29 22 0a 7c 20 50 66 6e 65 67 20 20 20 20 ing_of_freg.f2.^.")".|.Pfneg....
1cb20 20 28 66 30 2c 20 66 31 29 20 20 20 20 20 20 20 20 20 20 20 20 2d 3e 20 22 50 66 6e 65 67 28 22 .(f0,.f1)............->."Pfneg("
1cb40 20 5e 20 73 74 72 69 6e 67 5f 6f 66 5f 66 72 65 67 20 66 30 20 5e 20 22 2c 20 22 20 5e 20 73 74 .^.string_of_freg.f0.^.",.".^.st
1cb60 72 69 6e 67 5f 6f 66 5f 66 72 65 67 20 66 31 20 5e 20 22 29 22 0a 7c 20 50 66 72 73 70 20 20 20 ring_of_freg.f1.^.")".|.Pfrsp...
1cb80 20 20 28 66 30 2c 20 66 31 29 20 20 20 20 20 20 20 20 20 20 20 20 2d 3e 20 22 50 66 72 73 70 28 ..(f0,.f1)............->."Pfrsp(
1cba0 22 20 5e 20 73 74 72 69 6e 67 5f 6f 66 5f 66 72 65 67 20 66 30 20 5e 20 22 2c 20 22 20 5e 20 73 ".^.string_of_freg.f0.^.",.".^.s
1cbc0 74 72 69 6e 67 5f 6f 66 5f 66 72 65 67 20 66 31 20 5e 20 22 29 22 0a 7c 20 50 66 73 75 62 20 20 tring_of_freg.f1.^.")".|.Pfsub..
1cbe0 20 20 20 28 66 30 2c 20 66 31 2c 20 66 32 29 20 20 20 20 20 20 20 20 2d 3e 20 22 50 66 73 75 62 ...(f0,.f1,.f2)........->."Pfsub
1cc00 28 22 20 5e 20 73 74 72 69 6e 67 5f 6f 66 5f 66 72 65 67 20 66 30 20 5e 20 22 2c 20 22 20 5e 20 (".^.string_of_freg.f0.^.",.".^.
1cc20 73 74 72 69 6e 67 5f 6f 66 5f 66 72 65 67 20 66 31 20 5e 20 22 2c 20 22 20 5e 20 73 74 72 69 6e string_of_freg.f1.^.",.".^.strin
1cc40 67 5f 6f 66 5f 66 72 65 67 20 66 32 20 5e 20 22 29 22 0a 7c 20 50 6c 62 7a 20 20 20 20 20 20 28 g_of_freg.f2.^.")".|.Plbz......(
1cc60 69 30 2c 20 63 31 2c 20 69 32 29 20 20 20 20 20 20 20 20 2d 3e 20 22 50 6c 62 7a 28 22 20 5e 20 i0,.c1,.i2)........->."Plbz(".^.
1cc80 73 74 72 69 6e 67 5f 6f 66 5f 69 72 65 67 20 69 30 20 5e 20 22 2c 20 22 20 5e 20 73 74 72 69 6e string_of_ireg.i0.^.",.".^.strin
1cca0 67 5f 6f 66 5f 63 6f 6e 73 74 61 6e 74 20 63 31 20 5e 20 22 2c 20 22 20 5e 20 73 74 72 69 6e 67 g_of_constant.c1.^.",.".^.string
1ccc0 5f 6f 66 5f 69 72 65 67 20 69 32 20 5e 20 22 29 22 0a 7c 20 50 6c 62 7a 78 20 20 20 20 20 28 69 _of_ireg.i2.^.")".|.Plbzx.....(i
1cce0 30 2c 20 69 31 2c 20 69 32 29 20 20 20 20 20 20 20 20 2d 3e 20 22 50 6c 62 7a 78 28 22 20 5e 20 0,.i1,.i2)........->."Plbzx(".^.
1cd00 73 74 72 69 6e 67 5f 6f 66 5f 69 72 65 67 20 69 30 20 5e 20 22 2c 20 22 20 5e 20 73 74 72 69 6e string_of_ireg.i0.^.",.".^.strin
1cd20 67 5f 6f 66 5f 69 72 65 67 20 69 31 20 5e 20 22 2c 20 22 20 5e 20 73 74 72 69 6e 67 5f 6f 66 5f g_of_ireg.i1.^.",.".^.string_of_
1cd40 69 72 65 67 20 69 32 20 5e 20 22 29 22 0a 7c 20 50 6c 66 64 20 20 20 20 20 20 28 66 30 2c 20 63 ireg.i2.^.")".|.Plfd......(f0,.c
1cd60 31 2c 20 69 32 29 20 20 20 20 20 20 20 20 2d 3e 20 22 50 6c 66 64 28 22 20 5e 20 73 74 72 69 6e 1,.i2)........->."Plfd(".^.strin
1cd80 67 5f 6f 66 5f 66 72 65 67 20 66 30 20 5e 20 22 2c 20 22 20 5e 20 73 74 72 69 6e 67 5f 6f 66 5f g_of_freg.f0.^.",.".^.string_of_
1cda0 63 6f 6e 73 74 61 6e 74 20 63 31 20 5e 20 22 2c 20 22 20 5e 20 73 74 72 69 6e 67 5f 6f 66 5f 69 constant.c1.^.",.".^.string_of_i
1cdc0 72 65 67 20 69 32 20 5e 20 22 29 22 0a 7c 20 50 6c 66 64 78 20 20 20 20 20 28 66 30 2c 20 69 31 reg.i2.^.")".|.Plfdx.....(f0,.i1
1cde0 2c 20 69 32 29 20 20 20 20 20 20 20 20 2d 3e 20 22 50 6c 66 64 78 28 22 20 5e 20 73 74 72 69 6e ,.i2)........->."Plfdx(".^.strin
1ce00 67 5f 6f 66 5f 66 72 65 67 20 66 30 20 5e 20 22 2c 20 22 20 5e 20 73 74 72 69 6e 67 5f 6f 66 5f g_of_freg.f0.^.",.".^.string_of_
1ce20 69 72 65 67 20 69 31 20 5e 20 22 2c 20 22 20 5e 20 73 74 72 69 6e 67 5f 6f 66 5f 69 72 65 67 20 ireg.i1.^.",.".^.string_of_ireg.
1ce40 69 32 20 5e 20 22 29 22 0a 7c 20 50 6c 66 73 20 20 20 20 20 20 28 66 30 2c 20 63 31 2c 20 69 32 i2.^.")".|.Plfs......(f0,.c1,.i2
1ce60 29 20 20 20 20 20 20 20 20 2d 3e 20 22 50 6c 66 73 28 22 20 5e 20 73 74 72 69 6e 67 5f 6f 66 5f )........->."Plfs(".^.string_of_
1ce80 66 72 65 67 20 66 30 20 5e 20 22 2c 20 22 20 5e 20 73 74 72 69 6e 67 5f 6f 66 5f 63 6f 6e 73 74 freg.f0.^.",.".^.string_of_const
1cea0 61 6e 74 20 63 31 20 5e 20 22 2c 20 22 20 5e 20 73 74 72 69 6e 67 5f 6f 66 5f 69 72 65 67 20 69 ant.c1.^.",.".^.string_of_ireg.i
1cec0 32 20 5e 20 22 29 22 0a 7c 20 50 6c 66 73 78 20 20 20 20 20 28 66 30 2c 20 69 31 2c 20 69 32 29 2.^.")".|.Plfsx.....(f0,.i1,.i2)
1cee0 20 20 20 20 20 20 20 20 2d 3e 20 22 50 6c 66 73 78 28 22 20 5e 20 73 74 72 69 6e 67 5f 6f 66 5f ........->."Plfsx(".^.string_of_
1cf00 66 72 65 67 20 66 30 20 5e 20 22 2c 20 22 20 5e 20 73 74 72 69 6e 67 5f 6f 66 5f 69 72 65 67 20 freg.f0.^.",.".^.string_of_ireg.
1cf20 69 31 20 5e 20 22 2c 20 22 20 5e 20 73 74 72 69 6e 67 5f 6f 66 5f 69 72 65 67 20 69 32 20 5e 20 i1.^.",.".^.string_of_ireg.i2.^.
1cf40 22 29 22 0a 7c 20 50 6c 68 61 20 20 20 20 20 20 28 69 30 2c 20 63 31 2c 20 69 32 29 20 20 20 20 ")".|.Plha......(i0,.c1,.i2)....
1cf60 20 20 20 20 2d 3e 20 22 50 6c 68 61 28 22 20 5e 20 73 74 72 69 6e 67 5f 6f 66 5f 69 72 65 67 20 ....->."Plha(".^.string_of_ireg.
1cf80 69 30 20 5e 20 22 2c 20 22 20 5e 20 73 74 72 69 6e 67 5f 6f 66 5f 63 6f 6e 73 74 61 6e 74 20 63 i0.^.",.".^.string_of_constant.c
1cfa0 31 20 5e 20 22 2c 20 22 20 5e 20 73 74 72 69 6e 67 5f 6f 66 5f 69 72 65 67 20 69 32 20 5e 20 22 1.^.",.".^.string_of_ireg.i2.^."
1cfc0 29 22 0a 7c 20 50 6c 68 61 78 20 20 20 20 20 28 69 30 2c 20 69 31 2c 20 69 32 29 20 20 20 20 20 )".|.Plhax.....(i0,.i1,.i2).....
1cfe0 20 20 20 2d 3e 20 22 50 6c 68 61 78 28 22 20 5e 20 73 74 72 69 6e 67 5f 6f 66 5f 69 72 65 67 20 ...->."Plhax(".^.string_of_ireg.
1d000 69 30 20 5e 20 22 2c 20 22 20 5e 20 73 74 72 69 6e 67 5f 6f 66 5f 69 72 65 67 20 69 31 20 5e 20 i0.^.",.".^.string_of_ireg.i1.^.
1d020 22 2c 20 22 20 5e 20 73 74 72 69 6e 67 5f 6f 66 5f 69 72 65 67 20 69 32 20 5e 20 22 29 22 0a 7c ",.".^.string_of_ireg.i2.^.")".|
1d040 20 50 6c 68 7a 20 20 20 20 20 20 28 69 30 2c 20 63 31 2c 20 69 32 29 20 20 20 20 20 20 20 20 2d .Plhz......(i0,.c1,.i2)........-
1d060 3e 20 22 50 6c 68 7a 28 22 20 5e 20 73 74 72 69 6e 67 5f 6f 66 5f 69 72 65 67 20 69 30 20 5e 20 >."Plhz(".^.string_of_ireg.i0.^.
1d080 22 2c 20 22 20 5e 20 73 74 72 69 6e 67 5f 6f 66 5f 63 6f 6e 73 74 61 6e 74 20 63 31 20 5e 20 22 ",.".^.string_of_constant.c1.^."
1d0a0 2c 20 22 20 5e 20 73 74 72 69 6e 67 5f 6f 66 5f 69 72 65 67 20 69 32 20 5e 20 22 29 22 0a 7c 20 ,.".^.string_of_ireg.i2.^.")".|.
1d0c0 50 6c 68 7a 78 20 20 20 20 20 28 69 30 2c 20 69 31 2c 20 69 32 29 20 20 20 20 20 20 20 20 2d 3e Plhzx.....(i0,.i1,.i2)........->
1d0e0 20 22 50 6c 68 7a 78 28 22 20 5e 20 73 74 72 69 6e 67 5f 6f 66 5f 69 72 65 67 20 69 30 20 5e 20 ."Plhzx(".^.string_of_ireg.i0.^.
1d100 22 2c 20 22 20 5e 20 73 74 72 69 6e 67 5f 6f 66 5f 69 72 65 67 20 69 31 20 5e 20 22 2c 20 22 20 ",.".^.string_of_ireg.i1.^.",.".
1d120 5e 20 73 74 72 69 6e 67 5f 6f 66 5f 69 72 65 67 20 69 32 20 5e 20 22 29 22 0a 7c 20 50 6c 66 69 ^.string_of_ireg.i2.^.")".|.Plfi
1d140 20 20 20 20 20 20 28 66 30 2c 20 66 31 29 20 20 20 20 20 20 20 20 20 20 20 20 2d 3e 20 22 50 6c ......(f0,.f1)............->."Pl
1d160 66 69 28 22 20 5e 20 73 74 72 69 6e 67 5f 6f 66 5f 66 72 65 67 20 66 30 20 5e 20 22 2c 20 22 20 fi(".^.string_of_freg.f0.^.",.".
1d180 5e 20 73 74 72 69 6e 67 5f 6f 66 5f 66 66 6c 6f 61 74 20 66 31 20 5e 20 22 29 22 0a 7c 20 50 6c ^.string_of_ffloat.f1.^.")".|.Pl
1d1a0 77 7a 20 20 20 20 20 20 28 69 30 2c 20 63 31 2c 20 69 32 29 20 20 20 20 20 20 20 20 2d 3e 20 22 wz......(i0,.c1,.i2)........->."
1d1c0 50 6c 77 7a 28 22 20 5e 20 73 74 72 69 6e 67 5f 6f 66 5f 69 72 65 67 20 69 30 20 5e 20 22 2c 20 Plwz(".^.string_of_ireg.i0.^.",.
1d1e0 22 20 5e 20 73 74 72 69 6e 67 5f 6f 66 5f 63 6f 6e 73 74 61 6e 74 20 63 31 20 5e 20 22 2c 20 22 ".^.string_of_constant.c1.^.",."
1d200 20 5e 20 73 74 72 69 6e 67 5f 6f 66 5f 69 72 65 67 20 69 32 20 5e 20 22 29 22 0a 7c 20 50 6c 77 .^.string_of_ireg.i2.^.")".|.Plw
1d220 7a 78 20 20 20 20 20 28 69 30 2c 20 69 31 2c 20 69 32 29 20 20 20 20 20 20 20 20 2d 3e 20 22 50 zx.....(i0,.i1,.i2)........->."P
1d240 6c 77 7a 78 28 22 20 5e 20 73 74 72 69 6e 67 5f 6f 66 5f 69 72 65 67 20 69 30 20 5e 20 22 2c 20 lwzx(".^.string_of_ireg.i0.^.",.
1d260 22 20 5e 20 73 74 72 69 6e 67 5f 6f 66 5f 69 72 65 67 20 69 31 20 5e 20 22 2c 20 22 20 5e 20 73 ".^.string_of_ireg.i1.^.",.".^.s
1d280 74 72 69 6e 67 5f 6f 66 5f 69 72 65 67 20 69 32 20 5e 20 22 29 22 0a 7c 20 50 6d 66 63 72 62 69 tring_of_ireg.i2.^.")".|.Pmfcrbi
1d2a0 74 20 20 28 69 30 2c 20 63 31 29 20 20 20 20 20 20 20 20 20 20 20 20 2d 3e 20 22 50 6d 66 63 72 t..(i0,.c1)............->."Pmfcr
1d2c0 62 69 74 28 22 20 5e 20 73 74 72 69 6e 67 5f 6f 66 5f 69 72 65 67 20 69 30 20 5e 20 22 2c 20 22 bit(".^.string_of_ireg.i0.^.",."
1d2e0 20 5e 20 73 74 72 69 6e 67 5f 6f 66 5f 63 72 62 69 74 20 63 31 20 5e 20 22 29 22 0a 7c 20 50 6d .^.string_of_crbit.c1.^.")".|.Pm
1d300 66 6c 72 20 20 20 20 20 28 69 30 29 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2d 3e 20 22 flr.....(i0)................->."
1d320 50 6d 66 6c 72 28 22 20 5e 20 73 74 72 69 6e 67 5f 6f 66 5f 69 72 65 67 20 69 30 20 5e 20 22 29 Pmflr(".^.string_of_ireg.i0.^.")
1d340 22 0a 7c 20 50 6d 72 20 20 20 20 20 20 20 28 69 30 2c 20 69 31 29 20 20 20 20 20 20 20 20 20 20 ".|.Pmr.......(i0,.i1)..........
1d360 20 20 2d 3e 20 22 50 6d 72 28 22 20 5e 20 73 74 72 69 6e 67 5f 6f 66 5f 69 72 65 67 20 69 30 20 ..->."Pmr(".^.string_of_ireg.i0.
1d380 5e 20 22 2c 20 22 20 5e 20 73 74 72 69 6e 67 5f 6f 66 5f 69 72 65 67 20 69 31 20 5e 20 22 29 22 ^.",.".^.string_of_ireg.i1.^.")"
1d3a0 0a 7c 20 50 6d 74 63 74 72 20 20 20 20 28 69 30 29 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .|.Pmtctr....(i0)...............
1d3c0 20 2d 3e 20 22 50 6d 74 63 74 72 28 22 20 5e 20 73 74 72 69 6e 67 5f 6f 66 5f 69 72 65 67 20 69 .->."Pmtctr(".^.string_of_ireg.i
1d3e0 30 20 5e 20 22 29 22 0a 7c 20 50 6d 74 6c 72 20 20 20 20 20 28 69 30 29 20 20 20 20 20 20 20 20 0.^.")".|.Pmtlr.....(i0)........
1d400 20 20 20 20 20 20 20 20 2d 3e 20 22 50 6d 74 6c 72 28 22 20 5e 20 73 74 72 69 6e 67 5f 6f 66 5f ........->."Pmtlr(".^.string_of_
1d420 69 72 65 67 20 69 30 20 5e 20 22 29 22 0a 7c 20 50 6d 75 6c 6c 69 20 20 20 20 28 69 30 2c 20 69 ireg.i0.^.")".|.Pmulli....(i0,.i
1d440 31 2c 20 63 32 29 20 20 20 20 20 20 20 20 2d 3e 20 22 50 6d 75 6c 6c 69 28 22 20 5e 20 73 74 72 1,.c2)........->."Pmulli(".^.str
1d460 69 6e 67 5f 6f 66 5f 69 72 65 67 20 69 30 20 5e 20 22 2c 20 22 20 5e 20 73 74 72 69 6e 67 5f 6f ing_of_ireg.i0.^.",.".^.string_o
1d480 66 5f 69 72 65 67 20 69 31 20 5e 20 22 2c 20 22 20 5e 20 73 74 72 69 6e 67 5f 6f 66 5f 63 6f 6e f_ireg.i1.^.",.".^.string_of_con
1d4a0 73 74 61 6e 74 20 63 32 20 5e 20 22 29 22 0a 7c 20 50 6d 75 6c 6c 77 20 20 20 20 28 69 30 2c 20 stant.c2.^.")".|.Pmullw....(i0,.
1d4c0 69 31 2c 20 69 32 29 20 20 20 20 20 20 20 20 2d 3e 20 22 50 6d 75 6c 6c 77 28 22 20 5e 20 73 74 i1,.i2)........->."Pmullw(".^.st
1d4e0 72 69 6e 67 5f 6f 66 5f 69 72 65 67 20 69 30 20 5e 20 22 2c 20 22 20 5e 20 73 74 72 69 6e 67 5f ring_of_ireg.i0.^.",.".^.string_
1d500 6f 66 5f 69 72 65 67 20 69 31 20 5e 20 22 2c 20 22 20 5e 20 73 74 72 69 6e 67 5f 6f 66 5f 69 72 of_ireg.i1.^.",.".^.string_of_ir
1d520 65 67 20 69 32 20 5e 20 22 29 22 0a 7c 20 50 6e 61 6e 64 20 20 20 20 20 28 69 30 2c 20 69 31 2c eg.i2.^.")".|.Pnand.....(i0,.i1,
1d540 20 69 32 29 20 20 20 20 20 20 20 20 2d 3e 20 22 50 6e 61 6e 64 28 22 20 5e 20 73 74 72 69 6e 67 .i2)........->."Pnand(".^.string
1d560 5f 6f 66 5f 69 72 65 67 20 69 30 20 5e 20 22 2c 20 22 20 5e 20 73 74 72 69 6e 67 5f 6f 66 5f 69 _of_ireg.i0.^.",.".^.string_of_i
1d580 72 65 67 20 69 31 20 5e 20 22 2c 20 22 20 5e 20 73 74 72 69 6e 67 5f 6f 66 5f 69 72 65 67 20 69 reg.i1.^.",.".^.string_of_ireg.i
1d5a0 32 20 5e 20 22 29 22 0a 7c 20 50 6e 6f 72 20 20 20 20 20 20 28 69 30 2c 20 69 31 2c 20 69 32 29 2.^.")".|.Pnor......(i0,.i1,.i2)
1d5c0 20 20 20 20 20 20 20 20 2d 3e 20 22 50 6e 6f 72 28 22 20 5e 20 73 74 72 69 6e 67 5f 6f 66 5f 69 ........->."Pnor(".^.string_of_i
1d5e0 72 65 67 20 69 30 20 5e 20 22 2c 20 22 20 5e 20 73 74 72 69 6e 67 5f 6f 66 5f 69 72 65 67 20 69 reg.i0.^.",.".^.string_of_ireg.i
1d600 31 20 5e 20 22 2c 20 22 20 5e 20 73 74 72 69 6e 67 5f 6f 66 5f 69 72 65 67 20 69 32 20 5e 20 22 1.^.",.".^.string_of_ireg.i2.^."
1d620 29 22 0a 7c 20 50 6f 72 20 20 20 20 20 20 20 28 69 30 2c 20 69 31 2c 20 69 32 29 20 20 20 20 20 )".|.Por.......(i0,.i1,.i2).....
1d640 20 20 20 2d 3e 20 22 50 6f 72 28 22 20 5e 20 73 74 72 69 6e 67 5f 6f 66 5f 69 72 65 67 20 69 30 ...->."Por(".^.string_of_ireg.i0
1d660 20 5e 20 22 2c 20 22 20 5e 20 73 74 72 69 6e 67 5f 6f 66 5f 69 72 65 67 20 69 31 20 5e 20 22 2c .^.",.".^.string_of_ireg.i1.^.",
1d680 20 22 20 5e 20 73 74 72 69 6e 67 5f 6f 66 5f 69 72 65 67 20 69 32 20 5e 20 22 29 22 0a 7c 20 50 .".^.string_of_ireg.i2.^.")".|.P
1d6a0 6f 72 63 20 20 20 20 20 20 28 69 30 2c 20 69 31 2c 20 69 32 29 20 20 20 20 20 20 20 20 2d 3e 20 orc......(i0,.i1,.i2)........->.
1d6c0 22 50 6f 72 63 28 22 20 5e 20 73 74 72 69 6e 67 5f 6f 66 5f 69 72 65 67 20 69 30 20 5e 20 22 2c "Porc(".^.string_of_ireg.i0.^.",
1d6e0 20 22 20 5e 20 73 74 72 69 6e 67 5f 6f 66 5f 69 72 65 67 20 69 31 20 5e 20 22 2c 20 22 20 5e 20 .".^.string_of_ireg.i1.^.",.".^.
1d700 73 74 72 69 6e 67 5f 6f 66 5f 69 72 65 67 20 69 32 20 5e 20 22 29 22 0a 7c 20 50 6f 72 69 20 20 string_of_ireg.i2.^.")".|.Pori..
1d720 20 20 20 20 28 69 30 2c 20 69 31 2c 20 63 32 29 20 20 20 20 20 20 20 20 2d 3e 20 22 50 6f 72 69 ....(i0,.i1,.c2)........->."Pori
1d740 28 22 20 5e 20 73 74 72 69 6e 67 5f 6f 66 5f 69 72 65 67 20 69 30 20 5e 20 22 2c 20 22 20 5e 20 (".^.string_of_ireg.i0.^.",.".^.
1d760 73 74 72 69 6e 67 5f 6f 66 5f 69 72 65 67 20 69 31 20 5e 20 22 2c 20 22 20 5e 20 73 74 72 69 6e string_of_ireg.i1.^.",.".^.strin
1d780 67 5f 6f 66 5f 63 6f 6e 73 74 61 6e 74 20 63 32 20 5e 20 22 29 22 0a 7c 20 50 6f 72 69 73 20 20 g_of_constant.c2.^.")".|.Poris..
1d7a0 20 20 20 28 69 30 2c 20 69 31 2c 20 63 32 29 20 20 20 20 20 20 20 20 2d 3e 20 22 50 6f 72 69 73 ...(i0,.i1,.c2)........->."Poris
1d7c0 28 22 20 5e 20 73 74 72 69 6e 67 5f 6f 66 5f 69 72 65 67 20 69 30 20 5e 20 22 2c 20 22 20 5e 20 (".^.string_of_ireg.i0.^.",.".^.
1d7e0 73 74 72 69 6e 67 5f 6f 66 5f 69 72 65 67 20 69 31 20 5e 20 22 2c 20 22 20 5e 20 73 74 72 69 6e string_of_ireg.i1.^.",.".^.strin
1d800 67 5f 6f 66 5f 63 6f 6e 73 74 61 6e 74 20 63 32 20 5e 20 22 29 22 0a 7c 20 50 72 6c 77 69 6e 6d g_of_constant.c2.^.")".|.Prlwinm
1d820 20 20 20 28 69 30 2c 20 69 31 2c 20 69 32 2c 20 69 33 29 20 20 20 20 2d 3e 20 22 50 72 6c 77 69 ...(i0,.i1,.i2,.i3)....->."Prlwi
1d840 6e 6d 28 22 20 5e 20 73 74 72 69 6e 67 5f 6f 66 5f 69 72 65 67 20 69 30 20 5e 20 22 2c 20 22 20 nm(".^.string_of_ireg.i0.^.",.".
1d860 5e 20 73 74 72 69 6e 67 5f 6f 66 5f 69 72 65 67 20 69 31 20 5e 20 22 2c 20 22 20 5e 20 73 74 72 ^.string_of_ireg.i1.^.",.".^.str
1d880 69 6e 67 5f 6f 66 5f 69 69 6e 74 20 69 32 20 5e 20 22 2c 20 22 20 5e 20 73 74 72 69 6e 67 5f 6f ing_of_iint.i2.^.",.".^.string_o
1d8a0 66 5f 69 69 6e 74 20 69 33 20 5e 20 22 29 22 0a 7c 20 50 72 6c 77 69 6d 69 20 20 20 28 69 30 2c f_iint.i3.^.")".|.Prlwimi...(i0,
1d8c0 20 69 31 2c 20 69 32 2c 20 69 33 29 20 20 20 20 2d 3e 20 22 50 72 6c 77 69 6d 69 28 22 20 5e 20 .i1,.i2,.i3)....->."Prlwimi(".^.
1d8e0 73 74 72 69 6e 67 5f 6f 66 5f 69 72 65 67 20 69 30 20 5e 20 22 2c 20 22 20 5e 20 73 74 72 69 6e string_of_ireg.i0.^.",.".^.strin
1d900 67 5f 6f 66 5f 69 72 65 67 20 69 31 20 5e 20 22 2c 20 22 20 5e 20 73 74 72 69 6e 67 5f 6f 66 5f g_of_ireg.i1.^.",.".^.string_of_
1d920 69 69 6e 74 20 69 32 20 5e 20 22 2c 20 22 20 5e 20 73 74 72 69 6e 67 5f 6f 66 5f 69 69 6e 74 20 iint.i2.^.",.".^.string_of_iint.
1d940 69 33 20 5e 20 22 29 22 0a 7c 20 50 73 6c 77 20 20 20 20 20 20 28 69 30 2c 20 69 31 2c 20 69 32 i3.^.")".|.Pslw......(i0,.i1,.i2
1d960 29 20 20 20 20 20 20 20 20 2d 3e 20 22 50 73 6c 77 28 22 20 5e 20 73 74 72 69 6e 67 5f 6f 66 5f )........->."Pslw(".^.string_of_
1d980 69 72 65 67 20 69 30 20 5e 20 22 2c 20 22 20 5e 20 73 74 72 69 6e 67 5f 6f 66 5f 69 72 65 67 20 ireg.i0.^.",.".^.string_of_ireg.
1d9a0 69 31 20 5e 20 22 2c 20 22 20 5e 20 73 74 72 69 6e 67 5f 6f 66 5f 69 72 65 67 20 69 32 20 5e 20 i1.^.",.".^.string_of_ireg.i2.^.
1d9c0 22 29 22 0a 7c 20 50 73 72 61 77 20 20 20 20 20 28 69 30 2c 20 69 31 2c 20 69 32 29 20 20 20 20 ")".|.Psraw.....(i0,.i1,.i2)....
1d9e0 20 20 20 20 2d 3e 20 22 50 73 72 61 77 28 22 20 5e 20 73 74 72 69 6e 67 5f 6f 66 5f 69 72 65 67 ....->."Psraw(".^.string_of_ireg
1da00 20 69 30 20 5e 20 22 2c 20 22 20 5e 20 73 74 72 69 6e 67 5f 6f 66 5f 69 72 65 67 20 69 31 20 5e .i0.^.",.".^.string_of_ireg.i1.^
1da20 20 22 2c 20 22 20 5e 20 73 74 72 69 6e 67 5f 6f 66 5f 69 72 65 67 20 69 32 20 5e 20 22 29 22 0a .",.".^.string_of_ireg.i2.^.")".
1da40 7c 20 50 73 72 61 77 69 20 20 20 20 28 69 30 2c 20 69 31 2c 20 69 32 29 20 20 20 20 20 20 20 20 |.Psrawi....(i0,.i1,.i2)........
1da60 2d 3e 20 22 50 73 72 61 77 69 28 22 20 5e 20 73 74 72 69 6e 67 5f 6f 66 5f 69 72 65 67 20 69 30 ->."Psrawi(".^.string_of_ireg.i0
1da80 20 5e 20 22 2c 20 22 20 5e 20 73 74 72 69 6e 67 5f 6f 66 5f 69 72 65 67 20 69 31 20 5e 20 22 2c .^.",.".^.string_of_ireg.i1.^.",
1daa0 20 22 20 5e 20 73 74 72 69 6e 67 5f 6f 66 5f 69 69 6e 74 20 69 32 20 5e 20 22 29 22 0a 7c 20 50 .".^.string_of_iint.i2.^.")".|.P
1dac0 73 72 77 20 20 20 20 20 20 28 69 30 2c 20 69 31 2c 20 69 32 29 20 20 20 20 20 20 20 20 2d 3e 20 srw......(i0,.i1,.i2)........->.
1dae0 22 50 73 72 77 28 22 20 5e 20 73 74 72 69 6e 67 5f 6f 66 5f 69 72 65 67 20 69 30 20 5e 20 22 2c "Psrw(".^.string_of_ireg.i0.^.",
1db00 20 22 20 5e 20 73 74 72 69 6e 67 5f 6f 66 5f 69 72 65 67 20 69 31 20 5e 20 22 2c 20 22 20 5e 20 .".^.string_of_ireg.i1.^.",.".^.
1db20 73 74 72 69 6e 67 5f 6f 66 5f 69 72 65 67 20 69 32 20 5e 20 22 29 22 0a 7c 20 50 73 74 62 20 20 string_of_ireg.i2.^.")".|.Pstb..
1db40 20 20 20 20 28 69 30 2c 20 63 31 2c 20 69 32 29 20 20 20 20 20 20 20 20 2d 3e 20 22 50 73 74 62 ....(i0,.c1,.i2)........->."Pstb
1db60 28 22 20 5e 20 73 74 72 69 6e 67 5f 6f 66 5f 69 72 65 67 20 69 30 20 5e 20 22 2c 20 22 20 5e 20 (".^.string_of_ireg.i0.^.",.".^.
1db80 73 74 72 69 6e 67 5f 6f 66 5f 63 6f 6e 73 74 61 6e 74 20 63 31 20 5e 20 22 2c 20 22 20 5e 20 73 string_of_constant.c1.^.",.".^.s
1dba0 74 72 69 6e 67 5f 6f 66 5f 69 72 65 67 20 69 32 20 5e 20 22 29 22 0a 7c 20 50 73 74 62 78 20 20 tring_of_ireg.i2.^.")".|.Pstbx..
1dbc0 20 20 20 28 69 30 2c 20 69 31 2c 20 69 32 29 20 20 20 20 20 20 20 20 2d 3e 20 22 50 73 74 62 78 ...(i0,.i1,.i2)........->."Pstbx
1dbe0 28 22 20 5e 20 73 74 72 69 6e 67 5f 6f 66 5f 69 72 65 67 20 69 30 20 5e 20 22 2c 20 22 20 5e 20 (".^.string_of_ireg.i0.^.",.".^.
1dc00 73 74 72 69 6e 67 5f 6f 66 5f 69 72 65 67 20 69 31 20 5e 20 22 2c 20 22 20 5e 20 73 74 72 69 6e string_of_ireg.i1.^.",.".^.strin
1dc20 67 5f 6f 66 5f 69 72 65 67 20 69 32 20 5e 20 22 29 22 0a 7c 20 50 73 74 66 64 20 20 20 20 20 28 g_of_ireg.i2.^.")".|.Pstfd.....(
1dc40 66 30 2c 20 63 31 2c 20 69 32 29 20 20 20 20 20 20 20 20 2d 3e 20 22 50 73 74 66 64 28 22 20 5e f0,.c1,.i2)........->."Pstfd(".^
1dc60 20 73 74 72 69 6e 67 5f 6f 66 5f 66 72 65 67 20 66 30 20 5e 20 22 2c 20 22 20 5e 20 73 74 72 69 .string_of_freg.f0.^.",.".^.stri
1dc80 6e 67 5f 6f 66 5f 63 6f 6e 73 74 61 6e 74 20 63 31 20 5e 20 22 2c 20 22 20 5e 20 73 74 72 69 6e ng_of_constant.c1.^.",.".^.strin
1dca0 67 5f 6f 66 5f 69 72 65 67 20 69 32 20 5e 20 22 29 22 0a 7c 20 50 73 74 66 64 78 20 20 20 20 28 g_of_ireg.i2.^.")".|.Pstfdx....(
1dcc0 66 30 2c 20 69 31 2c 20 69 32 29 20 20 20 20 20 20 20 20 2d 3e 20 22 50 73 74 66 64 78 28 22 20 f0,.i1,.i2)........->."Pstfdx(".
1dce0 5e 20 73 74 72 69 6e 67 5f 6f 66 5f 66 72 65 67 20 66 30 20 5e 20 22 2c 20 22 20 5e 20 73 74 72 ^.string_of_freg.f0.^.",.".^.str
1dd00 69 6e 67 5f 6f 66 5f 69 72 65 67 20 69 31 20 5e 20 22 2c 20 22 20 5e 20 73 74 72 69 6e 67 5f 6f ing_of_ireg.i1.^.",.".^.string_o
1dd20 66 5f 69 72 65 67 20 69 32 20 5e 20 22 29 22 0a 7c 20 50 73 74 66 73 20 20 20 20 20 28 66 30 2c f_ireg.i2.^.")".|.Pstfs.....(f0,
1dd40 20 63 31 2c 20 69 32 29 20 20 20 20 20 20 20 20 2d 3e 20 22 50 73 74 66 73 28 22 20 5e 20 73 74 .c1,.i2)........->."Pstfs(".^.st
1dd60 72 69 6e 67 5f 6f 66 5f 66 72 65 67 20 66 30 20 5e 20 22 2c 20 22 20 5e 20 73 74 72 69 6e 67 5f ring_of_freg.f0.^.",.".^.string_
1dd80 6f 66 5f 63 6f 6e 73 74 61 6e 74 20 63 31 20 5e 20 22 2c 20 22 20 5e 20 73 74 72 69 6e 67 5f 6f of_constant.c1.^.",.".^.string_o
1dda0 66 5f 69 72 65 67 20 69 32 20 5e 20 22 29 22 0a 7c 20 50 73 74 66 73 78 20 20 20 20 28 66 30 2c f_ireg.i2.^.")".|.Pstfsx....(f0,
1ddc0 20 69 31 2c 20 69 32 29 20 20 20 20 20 20 20 20 2d 3e 20 22 50 73 74 66 73 78 28 22 20 5e 20 73 .i1,.i2)........->."Pstfsx(".^.s
1dde0 74 72 69 6e 67 5f 6f 66 5f 66 72 65 67 20 66 30 20 5e 20 22 2c 20 22 20 5e 20 73 74 72 69 6e 67 tring_of_freg.f0.^.",.".^.string
1de00 5f 6f 66 5f 69 72 65 67 20 69 31 20 5e 20 22 2c 20 22 20 5e 20 73 74 72 69 6e 67 5f 6f 66 5f 69 _of_ireg.i1.^.",.".^.string_of_i
1de20 72 65 67 20 69 32 20 5e 20 22 29 22 0a 7c 20 50 73 74 68 20 20 20 20 20 20 28 69 30 2c 20 63 31 reg.i2.^.")".|.Psth......(i0,.c1
1de40 2c 20 69 32 29 20 20 20 20 20 20 20 20 2d 3e 20 22 50 73 74 68 28 22 20 5e 20 73 74 72 69 6e 67 ,.i2)........->."Psth(".^.string
1de60 5f 6f 66 5f 69 72 65 67 20 69 30 20 5e 20 22 2c 20 22 20 5e 20 73 74 72 69 6e 67 5f 6f 66 5f 63 _of_ireg.i0.^.",.".^.string_of_c
1de80 6f 6e 73 74 61 6e 74 20 63 31 20 5e 20 22 2c 20 22 20 5e 20 73 74 72 69 6e 67 5f 6f 66 5f 69 72 onstant.c1.^.",.".^.string_of_ir
1dea0 65 67 20 69 32 20 5e 20 22 29 22 0a 7c 20 50 73 74 68 78 20 20 20 20 20 28 69 30 2c 20 69 31 2c eg.i2.^.")".|.Psthx.....(i0,.i1,
1dec0 20 69 32 29 20 20 20 20 20 20 20 20 2d 3e 20 22 50 73 74 68 78 28 22 20 5e 20 73 74 72 69 6e 67 .i2)........->."Psthx(".^.string
1dee0 5f 6f 66 5f 69 72 65 67 20 69 30 20 5e 20 22 2c 20 22 20 5e 20 73 74 72 69 6e 67 5f 6f 66 5f 69 _of_ireg.i0.^.",.".^.string_of_i
1df00 72 65 67 20 69 31 20 5e 20 22 2c 20 22 20 5e 20 73 74 72 69 6e 67 5f 6f 66 5f 69 72 65 67 20 69 reg.i1.^.",.".^.string_of_ireg.i
1df20 32 20 5e 20 22 29 22 0a 7c 20 50 73 74 77 20 20 20 20 20 20 28 69 30 2c 20 63 31 2c 20 69 32 29 2.^.")".|.Pstw......(i0,.c1,.i2)
1df40 20 20 20 20 20 20 20 20 2d 3e 20 22 50 73 74 77 28 22 20 5e 20 73 74 72 69 6e 67 5f 6f 66 5f 69 ........->."Pstw(".^.string_of_i
1df60 72 65 67 20 69 30 20 5e 20 22 2c 20 22 20 5e 20 73 74 72 69 6e 67 5f 6f 66 5f 63 6f 6e 73 74 61 reg.i0.^.",.".^.string_of_consta
1df80 6e 74 20 63 31 20 5e 20 22 2c 20 22 20 5e 20 73 74 72 69 6e 67 5f 6f 66 5f 69 72 65 67 20 69 32 nt.c1.^.",.".^.string_of_ireg.i2
1dfa0 20 5e 20 22 29 22 0a 7c 20 50 73 74 77 78 20 20 20 20 20 28 69 30 2c 20 69 31 2c 20 69 32 29 20 .^.")".|.Pstwx.....(i0,.i1,.i2).
1dfc0 20 20 20 20 20 20 20 2d 3e 20 22 50 73 74 77 78 28 22 20 5e 20 73 74 72 69 6e 67 5f 6f 66 5f 69 .......->."Pstwx(".^.string_of_i
1dfe0 72 65 67 20 69 30 20 5e 20 22 2c 20 22 20 5e 20 73 74 72 69 6e 67 5f 6f 66 5f 69 72 65 67 20 69 reg.i0.^.",.".^.string_of_ireg.i
1e000 31 20 5e 20 22 2c 20 22 20 5e 20 73 74 72 69 6e 67 5f 6f 66 5f 69 72 65 67 20 69 32 20 5e 20 22 1.^.",.".^.string_of_ireg.i2.^."
1e020 29 22 0a 7c 20 50 73 75 62 66 63 20 20 20 20 28 69 30 2c 20 69 31 2c 20 69 32 29 20 20 20 20 20 )".|.Psubfc....(i0,.i1,.i2).....
1e040 20 20 20 2d 3e 20 22 50 73 75 62 66 63 28 22 20 5e 20 73 74 72 69 6e 67 5f 6f 66 5f 69 72 65 67 ...->."Psubfc(".^.string_of_ireg
1e060 20 69 30 20 5e 20 22 2c 20 22 20 5e 20 73 74 72 69 6e 67 5f 6f 66 5f 69 72 65 67 20 69 31 20 5e .i0.^.",.".^.string_of_ireg.i1.^
1e080 20 22 2c 20 22 20 5e 20 73 74 72 69 6e 67 5f 6f 66 5f 69 72 65 67 20 69 32 20 5e 20 22 29 22 0a .",.".^.string_of_ireg.i2.^.")".
1e0a0 7c 20 50 73 75 62 66 65 20 20 20 20 28 69 30 2c 20 69 31 2c 20 69 32 29 20 20 20 20 20 20 20 20 |.Psubfe....(i0,.i1,.i2)........
1e0c0 2d 3e 20 22 50 73 75 62 66 65 28 22 20 5e 20 73 74 72 69 6e 67 5f 6f 66 5f 69 72 65 67 20 69 30 ->."Psubfe(".^.string_of_ireg.i0
1e0e0 20 5e 20 22 2c 20 22 20 5e 20 73 74 72 69 6e 67 5f 6f 66 5f 69 72 65 67 20 69 31 20 5e 20 22 2c .^.",.".^.string_of_ireg.i1.^.",
1e100 20 22 20 5e 20 73 74 72 69 6e 67 5f 6f 66 5f 69 72 65 67 20 69 32 20 5e 20 22 29 22 0a 7c 20 50 .".^.string_of_ireg.i2.^.")".|.P
1e120 73 75 62 66 69 63 20 20 20 28 69 30 2c 20 69 31 2c 20 63 32 29 20 20 20 20 20 20 20 20 2d 3e 20 subfic...(i0,.i1,.c2)........->.
1e140 22 50 73 75 62 66 69 63 28 22 20 5e 20 73 74 72 69 6e 67 5f 6f 66 5f 69 72 65 67 20 69 30 20 5e "Psubfic(".^.string_of_ireg.i0.^
1e160 20 22 2c 20 22 20 5e 20 73 74 72 69 6e 67 5f 6f 66 5f 69 72 65 67 20 69 31 20 5e 20 22 2c 20 22 .",.".^.string_of_ireg.i1.^.",."
1e180 20 5e 20 73 74 72 69 6e 67 5f 6f 66 5f 63 6f 6e 73 74 61 6e 74 20 63 32 20 5e 20 22 29 22 0a 7c .^.string_of_constant.c2.^.")".|
1e1a0 20 50 78 6f 72 20 20 20 20 20 20 28 69 30 2c 20 69 31 2c 20 69 32 29 20 20 20 20 20 20 20 20 2d .Pxor......(i0,.i1,.i2)........-
1e1c0 3e 20 22 50 78 6f 72 28 22 20 5e 20 73 74 72 69 6e 67 5f 6f 66 5f 69 72 65 67 20 69 30 20 5e 20 >."Pxor(".^.string_of_ireg.i0.^.
1e1e0 22 2c 20 22 20 5e 20 73 74 72 69 6e 67 5f 6f 66 5f 69 72 65 67 20 69 31 20 5e 20 22 2c 20 22 20 ",.".^.string_of_ireg.i1.^.",.".
1e200 5e 20 73 74 72 69 6e 67 5f 6f 66 5f 69 72 65 67 20 69 32 20 5e 20 22 29 22 0a 7c 20 50 78 6f 72 ^.string_of_ireg.i2.^.")".|.Pxor
1e220 69 20 20 20 20 20 28 69 30 2c 20 69 31 2c 20 63 32 29 20 20 20 20 20 20 20 20 2d 3e 20 22 50 78 i.....(i0,.i1,.c2)........->."Px
1e240 6f 72 69 28 22 20 5e 20 73 74 72 69 6e 67 5f 6f 66 5f 69 72 65 67 20 69 30 20 5e 20 22 2c 20 22 ori(".^.string_of_ireg.i0.^.",."
1e260 20 5e 20 73 74 72 69 6e 67 5f 6f 66 5f 69 72 65 67 20 69 31 20 5e 20 22 2c 20 22 20 5e 20 73 74 .^.string_of_ireg.i1.^.",.".^.st
1e280 72 69 6e 67 5f 6f 66 5f 63 6f 6e 73 74 61 6e 74 20 63 32 20 5e 20 22 29 22 0a 7c 20 50 78 6f 72 ring_of_constant.c2.^.")".|.Pxor
1e2a0 69 73 20 20 20 20 28 69 30 2c 20 69 31 2c 20 63 32 29 20 20 20 20 20 20 20 20 2d 3e 20 22 50 78 is....(i0,.i1,.c2)........->."Px
1e2c0 6f 72 69 73 28 22 20 5e 20 73 74 72 69 6e 67 5f 6f 66 5f 69 72 65 67 20 69 30 20 5e 20 22 2c 20 oris(".^.string_of_ireg.i0.^.",.
1e2e0 22 20 5e 20 73 74 72 69 6e 67 5f 6f 66 5f 69 72 65 67 20 69 31 20 5e 20 22 2c 20 22 20 5e 20 73 ".^.string_of_ireg.i1.^.",.".^.s
1e300 74 72 69 6e 67 5f 6f 66 5f 63 6f 6e 73 74 61 6e 74 20 63 32 20 5e 20 22 29 22 0a 7c 20 50 6c 61 tring_of_constant.c2.^.")".|.Pla
1e320 62 65 6c 20 20 20 20 28 6c 30 29 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2d 3e 20 22 50 bel....(l0)................->."P
1e340 6c 61 62 65 6c 28 22 20 5e 20 73 74 72 69 6e 67 5f 6f 66 5f 6c 61 62 65 6c 20 6c 30 20 5e 20 22 label(".^.string_of_label.l0.^."
1e360 29 22 0a 7c 20 50 62 75 69 6c 74 69 6e 20 20 28 65 30 2c 20 70 31 2c 20 70 32 29 20 20 20 20 20 )".|.Pbuiltin..(e0,.p1,.p2).....
1e380 20 20 20 2d 3e 20 22 50 62 75 69 6c 74 69 6e 28 22 20 5e 20 73 74 72 69 6e 67 5f 6f 66 5f 65 78 ...->."Pbuiltin(".^.string_of_ex
1e3a0 74 65 72 6e 61 6c 5f 66 75 6e 63 74 69 6f 6e 20 65 30 20 5e 20 22 2c 20 22 20 5e 20 73 74 72 69 ternal_function.e0.^.",.".^.stri
1e3c0 6e 67 5f 6f 66 5f 6c 69 73 74 20 73 74 72 69 6e 67 5f 6f 66 5f 70 72 65 67 20 22 2c 20 22 20 70 ng_of_list.string_of_preg.",.".p
1e3e0 31 20 5e 20 22 2c 20 22 20 5e 20 73 74 72 69 6e 67 5f 6f 66 5f 70 72 65 67 20 70 32 20 5e 20 22 1.^.",.".^.string_of_preg.p2.^."
1e400 29 22 0a 7c 20 50 61 6e 6e 6f 74 20 20 20 20 28 65 30 2c 20 61 31 29 20 20 20 20 20 20 20 20 20 )".|.Pannot....(e0,.a1).........
1e420 20 20 20 2d 3e 20 22 50 61 6e 6e 6f 74 28 22 20 5e 20 73 74 72 69 6e 67 5f 6f 66 5f 65 78 74 65 ...->."Pannot(".^.string_of_exte
1e440 72 6e 61 6c 5f 66 75 6e 63 74 69 6f 6e 20 65 30 20 5e 20 22 2c 20 22 20 5e 20 73 74 72 69 6e 67 rnal_function.e0.^.",.".^.string
1e460 5f 6f 66 5f 6c 69 73 74 20 73 74 72 69 6e 67 5f 6f 66 5f 61 6e 6e 6f 74 5f 70 61 72 61 6d 20 22 _of_list.string_of_annot_param."
1e480 2c 20 22 20 61 31 20 5e 20 22 29 22 0a 0a 6c 65 74 20 73 74 72 69 6e 67 5f 6f 66 5f 69 6e 69 74 ,.".a1.^.")"..let.string_of_init
1e4a0 5f 64 61 74 61 20 3d 20 66 75 6e 63 74 69 6f 6e 0a 7c 20 49 6e 69 74 5f 69 6e 74 38 28 69 29 20 _data.=.function.|.Init_int8(i).
1e4c0 20 20 20 2d 3e 20 22 49 6e 69 74 5f 69 6e 74 38 28 22 20 20 20 20 5e 20 73 74 72 69 6e 67 5f 6f ...->."Init_int8("....^.string_o
1e4e0 66 5f 69 6e 74 20 28 7a 5f 69 6e 74 5f 6c 61 78 20 69 29 20 20 5e 20 22 29 22 0a 7c 20 49 6e 69 f_int.(z_int_lax.i)..^.")".|.Ini
1e500 74 5f 69 6e 74 31 36 28 69 29 20 20 20 2d 3e 20 22 49 6e 69 74 5f 69 6e 74 31 36 28 22 20 20 20 t_int16(i)...->."Init_int16("...
1e520 5e 20 73 74 72 69 6e 67 5f 6f 66 5f 69 6e 74 20 28 7a 5f 69 6e 74 5f 6c 61 78 20 69 29 20 20 5e ^.string_of_int.(z_int_lax.i)..^
1e540 20 22 29 22 0a 7c 20 49 6e 69 74 5f 69 6e 74 33 32 28 69 29 20 20 20 2d 3e 20 22 49 6e 69 74 5f .")".|.Init_int32(i)...->."Init_
1e560 69 6e 74 33 32 28 22 20 20 20 5e 20 73 74 72 69 6e 67 5f 6f 66 5f 69 6e 74 33 32 69 20 28 7a 5f int32("...^.string_of_int32i.(z_
1e580 69 6e 74 33 32 20 69 29 20 5e 20 22 29 22 0a 7c 20 49 6e 69 74 5f 66 6c 6f 61 74 33 32 28 66 29 int32.i).^.")".|.Init_float32(f)
1e5a0 20 2d 3e 20 22 49 6e 69 74 5f 66 6c 6f 61 74 33 32 28 22 20 5e 20 73 74 72 69 6e 67 5f 6f 66 5f .->."Init_float32(".^.string_of_
1e5c0 66 66 6c 6f 61 74 20 66 20 20 20 20 20 20 20 20 20 20 20 5e 20 22 29 22 0a 7c 20 49 6e 69 74 5f ffloat.f...........^.")".|.Init_
1e5e0 66 6c 6f 61 74 36 34 28 66 29 20 2d 3e 20 22 49 6e 69 74 5f 66 6c 6f 61 74 36 34 28 22 20 5e 20 float64(f).->."Init_float64(".^.
1e600 73 74 72 69 6e 67 5f 6f 66 5f 66 66 6c 6f 61 74 20 66 20 20 20 20 20 20 20 20 20 20 20 5e 20 22 string_of_ffloat.f...........^."
1e620 29 22 0a 7c 20 49 6e 69 74 5f 73 70 61 63 65 28 7a 29 20 20 20 2d 3e 20 22 49 6e 69 74 5f 73 70 )".|.Init_space(z)...->."Init_sp
1e640 61 63 65 28 22 20 20 20 5e 20 73 74 72 69 6e 67 5f 6f 66 5f 69 6e 74 20 28 7a 5f 69 6e 74 20 7a ace("...^.string_of_int.(z_int.z
1e660 29 20 20 20 20 20 20 5e 20 22 29 22 0a 7c 20 49 6e 69 74 5f 61 64 64 72 6f 66 28 69 64 65 6e 74 )......^.")".|.Init_addrof(ident
1e680 2c 20 6f 66 73 29 20 2d 3e 0a 20 20 20 20 22 49 6e 69 74 5f 61 64 64 72 6f 66 28 22 20 5e 20 73 ,.ofs).->....."Init_addrof(".^.s
1e6a0 74 72 69 6e 67 5f 6f 66 5f 70 6f 73 20 69 64 65 6e 74 20 5e 20 22 2c 20 22 20 5e 20 73 74 72 69 tring_of_pos.ident.^.",.".^.stri
1e6c0 6e 67 5f 6f 66 5f 69 6e 74 33 32 69 20 28 7a 5f 69 6e 74 33 32 20 6f 66 73 29 20 5e 20 22 29 22 ng_of_int32i.(z_int32.ofs).^.")"
1e6e0 0a .