ofs | hex dump | ascii |
---|
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 | . |