os

An operating system
git clone https://erai.gay/code/os/
Log | Files | Refs | README | LICENSE

commit 2d0be3280d2ba03db08ff09167f79af75e61ca46
parent b07ef1f6c1c91fb6a4cebf15954d2dac9ca702ed
Author: erai <erai@omiltem.net>
Date:   Fri,  7 Feb 2025 16:52:14 +0000

Use rb tree for the main decl tree

Diffstat:
Mbootstrap.sh | 2+-
Mcc0.c | 1563++++++++++++++++++++++++++++++++++++++++++++++++-------------------------------
Mdecl.om | 70++++++++++++++--------------------------------------------------------
Arb.om | 215+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
4 files changed, 1187 insertions(+), 663 deletions(-)

diff --git a/bootstrap.sh b/bootstrap.sh @@ -2,7 +2,7 @@ BOOTSTRAP="cc0.c" LIBS="bufio.om lib.om alloc.om syscall.om" -SOURCES="cc1.om type.om parse2.om parse3.om peglib.om as.om decl.om node.om peg.om ir.om ircout.om" +SOURCES="cc1.om type.om parse2.om parse3.om peglib.om as.om decl.om node.om peg.om ir.om ircout.om rb.om" # Build the bootstrap compiler from c [ cc0 -nt cc0.c ] || gcc -O1 -g -std=c99 ${BOOTSTRAP} -o cc0 diff --git a/cc0.c b/cc0.c @@ -277,6 +277,11 @@ u my_peg_parse(u v_c, u v_sp, u v_err); u my_peg_reset(u v_c, u v_filename, u v_src, u v_len); u my_prototype(u v_c, u v_n); u my_putchar(u v_c, u v_ch); +u my_rb_first(u v_n); +u my_rb_link(u v_tree, u v_link, u v_parent, u v_n); +u my_rb_next(u v_n); +u my_rb_rotate_left(u v_tree, u v_n); +u my_rb_rotate_right(u v_tree, u v_n); u my_read(u v_fd, u v_buf, u v_n); u my_readall(u v_fd, u v_len, u v_a); u my_reconstruct(u v_c, u v_pn); @@ -3603,9 +3608,9 @@ b8: if (!(v2)) { goto b3; } #line 391 "cc1.om" b2: return 0UL; #line 399 "cc1.om" -b3: *(u *)((v_c) + (104UL)) = *(u *)((v_d) + (40UL)); +b3: *(u *)((v_c) + (104UL)) = *(u *)((v_d) + (48UL)); #line 401 "cc1.om" - if (!(*(u *)((v_d) + (88UL)))) { goto b1; } + if (!(*(u *)((v_d) + (96UL)))) { goto b1; } #line 402 "cc1.om" b10: v3 = (u)my_mark_stmt_used; #line 402 "cc1.om" @@ -3613,7 +3618,7 @@ b10: v3 = (u)my_mark_stmt_used; #line 402 "cc1.om" v5 = v_d; #line 402 "cc1.om" - v6 = *(u *)((*(u *)((v_d) + (88UL))) + (16UL)); + v6 = *(u *)((*(u *)((v_d) + (96UL))) + (16UL)); #line 402 "cc1.om" v7 = ((u (*)())(v3))(v4, v5, v6); #line 402 "cc1.om" @@ -4005,7 +4010,7 @@ b69: v_d = v62; #line 175 "cc1.om" if (!(v_d)) { goto b74; } #line 175 "cc1.om" -b73: if (!(*(u *)((v_d) + (64UL)))) { goto b74; } +b73: if (!(*(u *)((v_d) + (72UL)))) { goto b74; } #line 175 "cc1.om" b75: v63 = 1UL; #line 175 "cc1.om" @@ -4013,7 +4018,7 @@ b75: v63 = 1UL; #line 175 "cc1.om" b76: if (!(v63)) { goto b70; } #line 176 "cc1.om" -b71: *(u *)((v_c) + (88UL)) = *(u *)((v_d) + (80UL)); +b71: *(u *)((v_c) + (88UL)) = *(u *)((v_d) + (88UL)); #line 177 "cc1.om" v64 = (u)my_mark_func_used; #line 177 "cc1.om" @@ -4041,7 +4046,7 @@ b78: v_d = v74; #line 181 "cc1.om" if (!(v_d)) { goto b83; } #line 181 "cc1.om" -b82: if (!(*(u *)((v_d) + (64UL)))) { goto b83; } +b82: if (!(*(u *)((v_d) + (72UL)))) { goto b83; } #line 181 "cc1.om" b84: v75 = 1UL; #line 181 "cc1.om" @@ -4049,7 +4054,7 @@ b84: v75 = 1UL; #line 181 "cc1.om" b85: if (!(v75)) { goto b79; } #line 182 "cc1.om" -b80: *(u *)((v_c) + (96UL)) = *(u *)((v_d) + (80UL)); +b80: *(u *)((v_c) + (96UL)) = *(u *)((v_d) + (88UL)); #line 183 "cc1.om" v76 = (u)my_mark_func_used; #line 183 "cc1.om" @@ -4083,7 +4088,7 @@ b88: v_d = v89; #line 189 "cc1.om" if (!(v_d)) { goto b93; } #line 189 "cc1.om" -b92: if (!(*(u *)((v_d) + (104UL)))) { goto b93; } +b92: if (!(*(u *)((v_d) + (112UL)))) { goto b93; } #line 189 "cc1.om" b94: v90 = 1UL; #line 189 "cc1.om" @@ -4107,7 +4112,7 @@ b96: v_v = v96; #line 191 "cc1.om" if (!(v_v)) { goto b101; } #line 191 "cc1.om" -b100: if (!(*(u *)((v_v) + (64UL)))) { goto b101; } +b100: if (!(*(u *)((v_v) + (72UL)))) { goto b101; } #line 191 "cc1.om" b102: v97 = 1UL; #line 191 "cc1.om" @@ -4141,7 +4146,7 @@ b105: v_d = v108; #line 197 "cc1.om" if (!(v_d)) { goto b110; } #line 197 "cc1.om" -b109: if (!(*(u *)((v_d) + (104UL)))) { goto b110; } +b109: if (!(*(u *)((v_d) + (112UL)))) { goto b110; } #line 197 "cc1.om" b111: v109 = 1UL; #line 197 "cc1.om" @@ -4165,7 +4170,7 @@ b113: v_v = v115; #line 199 "cc1.om" if (!(v_v)) { goto b118; } #line 199 "cc1.om" -b117: if (!(*(u *)((v_v) + (64UL)))) { goto b118; } +b117: if (!(*(u *)((v_v) + (72UL)))) { goto b118; } #line 199 "cc1.om" b119: v116 = 1UL; #line 199 "cc1.om" @@ -4245,11 +4250,11 @@ b175: if (!(v155)) { goto b170; } #line 101 "cc1.om" b169: return 0UL; #line 241 "cc1.om" -b170: if (!(*(u *)((v_d) + (104UL)))) { goto b180; } +b170: if (!(*(u *)((v_d) + (112UL)))) { goto b180; } #line 241 "cc1.om" -b179: if (!(*(u *)((v_d) + (64UL)))) { goto b184; } +b179: if (!(*(u *)((v_d) + (72UL)))) { goto b184; } #line 241 "cc1.om" -b183: if (!(*(u *)((v_d) + (88UL)))) { goto b184; } +b183: if (!(*(u *)((v_d) + (96UL)))) { goto b184; } #line 241 "cc1.om" b185: v157 = 1UL; #line 241 "cc1.om" @@ -4295,11 +4300,11 @@ b174: v155 = 1UL; #line 237 "cc1.om" goto b175; #line 227 "cc1.om" -b148: if (!(*(u *)((v_d) + (104UL)))) { goto b158; } +b148: if (!(*(u *)((v_d) + (112UL)))) { goto b158; } #line 227 "cc1.om" -b157: if (!(*(u *)((v_d) + (64UL)))) { goto b162; } +b157: if (!(*(u *)((v_d) + (72UL)))) { goto b162; } #line 227 "cc1.om" -b161: if (!(*(u *)((v_d) + (88UL)))) { goto b162; } +b161: if (!(*(u *)((v_d) + (96UL)))) { goto b162; } #line 227 "cc1.om" b163: v144 = 1UL; #line 227 "cc1.om" @@ -4315,7 +4320,7 @@ b160: if (!(v143)) { goto b154; } #line 228 "cc1.om" b155: v145 = (u)my_ir_optimize; #line 228 "cc1.om" - v146 = *(u *)((v_d) + (120UL)); + v146 = *(u *)((v_d) + (128UL)); #line 228 "cc1.om" v147 = ((u (*)())(v145))(v146); #line 231 "cc1.om" @@ -4343,11 +4348,11 @@ b152: v142 = 1UL; #line 223 "cc1.om" goto b153; #line 213 "cc1.om" -b126: if (!(*(u *)((v_d) + (104UL)))) { goto b136; } +b126: if (!(*(u *)((v_d) + (112UL)))) { goto b136; } #line 213 "cc1.om" -b135: if (!(*(u *)((v_d) + (64UL)))) { goto b140; } +b135: if (!(*(u *)((v_d) + (72UL)))) { goto b140; } #line 213 "cc1.om" -b139: if (!(*(u *)((v_d) + (88UL)))) { goto b140; } +b139: if (!(*(u *)((v_d) + (96UL)))) { goto b140; } #line 213 "cc1.om" b141: v130 = 1UL; #line 213 "cc1.om" @@ -4365,11 +4370,11 @@ b133: v131 = (u)my_func_to_ir; #line 214 "cc1.om" v132 = v_c; #line 214 "cc1.om" - v133 = *(u *)((v_d) + (88UL)); + v133 = *(u *)((v_d) + (96UL)); #line 214 "cc1.om" v134 = ((u (*)())(v131))(v132, v133); #line 214 "cc1.om" -b143: *(u *)((v_d) + (120UL)) = v134; +b143: *(u *)((v_d) + (128UL)) = v134; #line 214 "cc1.om" goto b132; #line 217 "cc1.om" @@ -4421,7 +4426,7 @@ b74: v63 = 0UL; #line 175 "cc1.om" goto b76; #line 166 "cc1.om" -b58: if (!(*(u *)((v_d) + (64UL)))) { goto b64; } +b58: if (!(*(u *)((v_d) + (72UL)))) { goto b64; } #line 167 "cc1.om" b65: v49 = (u)my_typecheck_func; #line 167 "cc1.om" @@ -4447,7 +4452,7 @@ b62: v48 = 1UL; #line 162 "cc1.om" goto b63; #line 152 "cc1.om" -b44: if (!(*(u *)((v_d) + (128UL)))) { goto b50; } +b44: if (!(*(u *)((v_d) + (136UL)))) { goto b50; } #line 153 "cc1.om" b51: v37 = (u)my_layout_struct; #line 153 "cc1.om" @@ -5062,7 +5067,7 @@ b3: *(u *)((v_c) + (24UL)) = *(u *)((*(u *)((v_n) + (8UL))) + (24UL)); #line 548 "cc1.om" b9: v_d = v11; #line 550 "cc1.om" - if (!(*(u *)((v_d) + (200UL)))) { goto b10; } + if (!(*(u *)((v_d) + (208UL)))) { goto b10; } #line 551 "cc1.om" b11: v12 = (u)my_cdie; #line 551 "cc1.om" @@ -5078,11 +5083,11 @@ b15: v_i = *(u *)((*(u *)((*(u *)((v_n) + (8UL))) + (16UL))) + (48UL)); #line 555 "cc1.om" goto b14; #line 558 "cc1.om" -b14: *(u *)((v_d) + (200UL)) = 1UL; +b14: *(u *)((v_d) + (208UL)) = 1UL; #line 559 "cc1.om" - *(u *)((v_d) + (208UL)) = v_i; + *(u *)((v_d) + (216UL)) = v_i; #line 560 "cc1.om" - *(u *)((v_d) + (216UL)) = v_n; + *(u *)((v_d) + (224UL)) = v_n; #line 562 "cc1.om" v_i = (v_i) + (1UL); #line 563 "cc1.om" @@ -5145,7 +5150,7 @@ b1: v_t = v8; #line 420 "cc1.om" b2: v_d = v14; #line 422 "cc1.om" - if (!(*(u *)((v_d) + (64UL)))) { goto b3; } + if (!(*(u *)((v_d) + (72UL)))) { goto b3; } #line 423 "cc1.om" b4: v15 = (u)my_cdie; #line 423 "cc1.om" @@ -5155,11 +5160,11 @@ b4: v15 = (u)my_cdie; #line 423 "cc1.om" v18 = ((u (*)())(v15))(v16, v17); #line 426 "cc1.om" -b3: *(u *)((v_d) + (64UL)) = 1UL; +b3: *(u *)((v_d) + (72UL)) = 1UL; #line 427 "cc1.om" - *(u *)((v_d) + (72UL)) = v_t; + *(u *)((v_d) + (80UL)) = v_t; #line 428 "cc1.om" - *(u *)((v_d) + (96UL)) = v_n; + *(u *)((v_d) + (104UL)) = v_n; #line 430 "cc1.om" return v_d; } @@ -5254,7 +5259,7 @@ b1: v25 = (u)my_find; #line 495 "cc1.om" b27: v_d = v30; #line 497 "cc1.om" - if (!(*(u *)((v_d) + (128UL)))) { goto b28; } + if (!(*(u *)((v_d) + (136UL)))) { goto b28; } #line 498 "cc1.om" b29: v31 = (u)my_cdie; #line 498 "cc1.om" @@ -5264,9 +5269,9 @@ b29: v31 = (u)my_cdie; #line 498 "cc1.om" v34 = ((u (*)())(v31))(v32, v33); #line 501 "cc1.om" -b28: *(u *)((v_d) + (128UL)) = 1UL; +b28: *(u *)((v_d) + (136UL)) = 1UL; #line 502 "cc1.om" - *(u *)((v_d) + (152UL)) = v_n; + *(u *)((v_d) + (160UL)) = v_n; #line 503 "cc1.om" v35 = (u)my_prototype; #line 503 "cc1.om" @@ -5276,7 +5281,7 @@ b28: *(u *)((v_d) + (128UL)) = 1UL; #line 503 "cc1.om" v38 = ((u (*)())(v35))(v36, v37); #line 503 "cc1.om" -b32: *(u *)((v_d) + (160UL)) = v38; +b32: *(u *)((v_d) + (168UL)) = v38; #line 481 "cc1.om" return 0UL; #line 491 "cc1.om" @@ -5388,7 +5393,7 @@ b0: v7 = (u)my_defextern; #line 440 "cc1.om" b1: v_d = v10; #line 442 "cc1.om" - *(u *)((v_d) + (88UL)) = v_n; + *(u *)((v_d) + (96UL)) = v_n; #line 444 "cc1.om" v_n = *(u *)((*(u *)((*(u *)((v_n) + (8UL))) + (16UL))) + (8UL)); #line 446 "cc1.om" @@ -5410,7 +5415,7 @@ b3: v26 = (u)my_hoist_locals; #line 476 "cc1.om" v28 = v_d; #line 476 "cc1.om" - v29 = *(u *)((*(u *)((v_d) + (88UL))) + (16UL)); + v29 = *(u *)((*(u *)((v_d) + (96UL))) + (16UL)); #line 476 "cc1.om" v30 = 0UL; #line 476 "cc1.om" @@ -5418,7 +5423,7 @@ b3: v26 = (u)my_hoist_locals; #line 476 "cc1.om" b16: v_offset = v31; #line 478 "cc1.om" - *(u *)((v_d) + (112UL)) = v_offset; + *(u *)((v_d) + (120UL)) = v_offset; #line 433 "cc1.om" return 0UL; #line 452 "cc1.om" @@ -5448,7 +5453,7 @@ b10: v_t = v15; #line 461 "cc1.om" v17 = v_c; #line 461 "cc1.om" - v18 = *(u *)(v_d); + v18 = *(u *)((v_d) + (32UL)); #line 461 "cc1.om" v19 = v_name; #line 461 "cc1.om" @@ -5458,7 +5463,7 @@ b10: v_t = v15; #line 461 "cc1.om" b11: v_v = v21; #line 462 "cc1.om" - if (!(*(u *)((v_v) + (224UL)))) { goto b12; } + if (!(*(u *)((v_v) + (232UL)))) { goto b12; } #line 463 "cc1.om" b13: v22 = (u)my_cdie; #line 463 "cc1.om" @@ -5468,13 +5473,13 @@ b13: v22 = (u)my_cdie; #line 463 "cc1.om" v25 = ((u (*)())(v22))(v23, v24); #line 466 "cc1.om" -b12: *(u *)((v_v) + (224UL)) = 1UL; +b12: *(u *)((v_v) + (232UL)) = 1UL; #line 467 "cc1.om" - *(u *)((v_v) + (232UL)) = v_t; + *(u *)((v_v) + (240UL)) = v_t; #line 468 "cc1.om" - *(u *)((v_v) + (240UL)) = v_offset; + *(u *)((v_v) + (248UL)) = v_offset; #line 469 "cc1.om" - *(u *)((v_v) + (248UL)) = *(u *)((v_n) + (8UL)); + *(u *)((v_v) + (256UL)) = *(u *)((v_n) + (8UL)); #line 471 "cc1.om" v_offset = (v_offset) + (8UL); #line 472 "cc1.om" @@ -5577,7 +5582,7 @@ b1: v25 = (u)my_find; #line 520 "cc1.om" b27: v_d = v30; #line 522 "cc1.om" - if (!(*(u *)((v_d) + (128UL)))) { goto b28; } + if (!(*(u *)((v_d) + (136UL)))) { goto b28; } #line 523 "cc1.om" b29: v31 = (u)my_cdie; #line 523 "cc1.om" @@ -5587,9 +5592,9 @@ b29: v31 = (u)my_cdie; #line 523 "cc1.om" v34 = ((u (*)())(v31))(v32, v33); #line 526 "cc1.om" -b28: *(u *)((v_d) + (128UL)) = 1UL; +b28: *(u *)((v_d) + (136UL)) = 1UL; #line 527 "cc1.om" - *(u *)((v_d) + (152UL)) = v_n; + *(u *)((v_d) + (160UL)) = v_n; #line 528 "cc1.om" v35 = (u)my_prototype; #line 528 "cc1.om" @@ -5599,7 +5604,7 @@ b28: *(u *)((v_d) + (128UL)) = 1UL; #line 528 "cc1.om" v38 = ((u (*)())(v35))(v36, v37); #line 528 "cc1.om" -b32: *(u *)((v_d) + (160UL)) = v38; +b32: *(u *)((v_d) + (168UL)) = v38; #line 506 "cc1.om" return 0UL; #line 516 "cc1.om" @@ -7859,9 +7864,9 @@ b0: v2 = (u)my_find; #line 1677 "cc1.om" b1: v_d = v7; #line 1678 "cc1.om" - if (!(*(u *)((v_d) + (64UL)))) { goto b6; } + if (!(*(u *)((v_d) + (72UL)))) { goto b6; } #line 1678 "cc1.om" -b5: if (!(*(u *)((*(u *)((v_d) + (80UL))) + (16UL)))) { goto b10; } +b5: if (!(*(u *)((*(u *)((v_d) + (88UL))) + (16UL)))) { goto b10; } #line 1678 "cc1.om" b9: v9 = 0UL; #line 1678 "cc1.om" @@ -7879,7 +7884,7 @@ b3: v10 = (u)my_fixup_label; #line 1679 "cc1.om" v11 = *(u *)((v_c) + (48UL)); #line 1679 "cc1.om" - v12 = *(u *)((v_d) + (80UL)); + v12 = *(u *)((v_d) + (88UL)); #line 1679 "cc1.om" v13 = ((u (*)())(v10))(v11, v12); #line 1680 "cc1.om" @@ -7887,9 +7892,9 @@ b12: v14 = (u)my_add_symbol; #line 1680 "cc1.om" v15 = *(u *)((v_c) + (48UL)); #line 1680 "cc1.om" - v16 = *(u *)(v_d); + v16 = *(u *)((v_d) + (32UL)); #line 1680 "cc1.om" - v17 = *(u *)((v_d) + (80UL)); + v17 = *(u *)((v_d) + (88UL)); #line 1680 "cc1.om" v18 = ((u (*)())(v14))(v15, v16, v17); #line 1681 "cc1.om" @@ -8013,9 +8018,9 @@ b2: v72 = (u)my_find; #line 1692 "cc1.om" b23: v_d = v77; #line 1693 "cc1.om" - if (!(*(u *)((v_d) + (64UL)))) { goto b28; } + if (!(*(u *)((v_d) + (72UL)))) { goto b28; } #line 1693 "cc1.om" -b27: if (!(*(u *)((*(u *)((v_d) + (80UL))) + (16UL)))) { goto b32; } +b27: if (!(*(u *)((*(u *)((v_d) + (88UL))) + (16UL)))) { goto b32; } #line 1693 "cc1.om" b31: v79 = 0UL; #line 1693 "cc1.om" @@ -8033,7 +8038,7 @@ b25: v80 = (u)my_fixup_label; #line 1694 "cc1.om" v81 = *(u *)((v_c) + (48UL)); #line 1694 "cc1.om" - v82 = *(u *)((v_d) + (80UL)); + v82 = *(u *)((v_d) + (88UL)); #line 1694 "cc1.om" v83 = ((u (*)())(v80))(v81, v82); #line 1695 "cc1.om" @@ -8041,9 +8046,9 @@ b34: v84 = (u)my_add_symbol; #line 1695 "cc1.om" v85 = *(u *)((v_c) + (48UL)); #line 1695 "cc1.om" - v86 = *(u *)(v_d); + v86 = *(u *)((v_d) + (32UL)); #line 1695 "cc1.om" - v87 = *(u *)((v_d) + (80UL)); + v87 = *(u *)((v_d) + (88UL)); #line 1695 "cc1.om" v88 = ((u (*)())(v84))(v85, v86, v87); #line 1696 "cc1.om" @@ -8081,9 +8086,9 @@ b24: v99 = (u)my_find; #line 1700 "cc1.om" b38: v_d = v104; #line 1701 "cc1.om" - if (!(*(u *)((v_d) + (64UL)))) { goto b43; } + if (!(*(u *)((v_d) + (72UL)))) { goto b43; } #line 1701 "cc1.om" -b42: if (!(*(u *)((*(u *)((v_d) + (80UL))) + (16UL)))) { goto b47; } +b42: if (!(*(u *)((*(u *)((v_d) + (88UL))) + (16UL)))) { goto b47; } #line 1701 "cc1.om" b46: v106 = 0UL; #line 1701 "cc1.om" @@ -8101,7 +8106,7 @@ b40: v107 = (u)my_fixup_label; #line 1702 "cc1.om" v108 = *(u *)((v_c) + (48UL)); #line 1702 "cc1.om" - v109 = *(u *)((v_d) + (80UL)); + v109 = *(u *)((v_d) + (88UL)); #line 1702 "cc1.om" v110 = ((u (*)())(v107))(v108, v109); #line 1703 "cc1.om" @@ -8109,9 +8114,9 @@ b49: v111 = (u)my_add_symbol; #line 1703 "cc1.om" v112 = *(u *)((v_c) + (48UL)); #line 1703 "cc1.om" - v113 = *(u *)(v_d); + v113 = *(u *)((v_d) + (32UL)); #line 1703 "cc1.om" - v114 = *(u *)((v_d) + (80UL)); + v114 = *(u *)((v_d) + (88UL)); #line 1703 "cc1.om" v115 = ((u (*)())(v111))(v112, v113, v114); #line 1704 "cc1.om" @@ -8137,9 +8142,9 @@ b39: v120 = (u)my_find; #line 1707 "cc1.om" b52: v_d = v125; #line 1708 "cc1.om" - if (!(*(u *)((v_d) + (64UL)))) { goto b57; } + if (!(*(u *)((v_d) + (72UL)))) { goto b57; } #line 1708 "cc1.om" -b56: if (!(*(u *)((*(u *)((v_d) + (80UL))) + (16UL)))) { goto b61; } +b56: if (!(*(u *)((*(u *)((v_d) + (88UL))) + (16UL)))) { goto b61; } #line 1708 "cc1.om" b60: v127 = 0UL; #line 1708 "cc1.om" @@ -8157,7 +8162,7 @@ b54: v128 = (u)my_fixup_label; #line 1709 "cc1.om" v129 = *(u *)((v_c) + (48UL)); #line 1709 "cc1.om" - v130 = *(u *)((v_d) + (80UL)); + v130 = *(u *)((v_d) + (88UL)); #line 1709 "cc1.om" v131 = ((u (*)())(v128))(v129, v130); #line 1710 "cc1.om" @@ -8165,9 +8170,9 @@ b63: v132 = (u)my_add_symbol; #line 1710 "cc1.om" v133 = *(u *)((v_c) + (48UL)); #line 1710 "cc1.om" - v134 = *(u *)(v_d); + v134 = *(u *)((v_d) + (32UL)); #line 1710 "cc1.om" - v135 = *(u *)((v_d) + (80UL)); + v135 = *(u *)((v_d) + (88UL)); #line 1710 "cc1.om" v136 = ((u (*)())(v132))(v133, v134, v135); #line 1711 "cc1.om" @@ -8193,9 +8198,9 @@ b53: v141 = (u)my_find; #line 1714 "cc1.om" b66: v_d = v146; #line 1715 "cc1.om" - if (!(*(u *)((v_d) + (64UL)))) { goto b71; } + if (!(*(u *)((v_d) + (72UL)))) { goto b71; } #line 1715 "cc1.om" -b70: if (!(*(u *)((*(u *)((v_d) + (80UL))) + (16UL)))) { goto b75; } +b70: if (!(*(u *)((*(u *)((v_d) + (88UL))) + (16UL)))) { goto b75; } #line 1715 "cc1.om" b74: v148 = 0UL; #line 1715 "cc1.om" @@ -8213,7 +8218,7 @@ b68: v149 = (u)my_fixup_label; #line 1716 "cc1.om" v150 = *(u *)((v_c) + (48UL)); #line 1716 "cc1.om" - v151 = *(u *)((v_d) + (80UL)); + v151 = *(u *)((v_d) + (88UL)); #line 1716 "cc1.om" v152 = ((u (*)())(v149))(v150, v151); #line 1717 "cc1.om" @@ -8221,9 +8226,9 @@ b77: v153 = (u)my_add_symbol; #line 1717 "cc1.om" v154 = *(u *)((v_c) + (48UL)); #line 1717 "cc1.om" - v155 = *(u *)(v_d); + v155 = *(u *)((v_d) + (32UL)); #line 1717 "cc1.om" - v156 = *(u *)((v_d) + (80UL)); + v156 = *(u *)((v_d) + (88UL)); #line 1717 "cc1.om" v157 = ((u (*)())(v153))(v154, v155, v156); #line 1718 "cc1.om" @@ -8481,9 +8486,9 @@ b67: v278 = (u)my_find; #line 1738 "cc1.om" b97: v_d = v283; #line 1739 "cc1.om" - if (!(*(u *)((v_d) + (64UL)))) { goto b102; } + if (!(*(u *)((v_d) + (72UL)))) { goto b102; } #line 1739 "cc1.om" -b101: if (!(*(u *)((*(u *)((v_d) + (80UL))) + (16UL)))) { goto b106; } +b101: if (!(*(u *)((*(u *)((v_d) + (88UL))) + (16UL)))) { goto b106; } #line 1739 "cc1.om" b105: v285 = 0UL; #line 1739 "cc1.om" @@ -8501,7 +8506,7 @@ b99: v286 = (u)my_fixup_label; #line 1740 "cc1.om" v287 = *(u *)((v_c) + (48UL)); #line 1740 "cc1.om" - v288 = *(u *)((v_d) + (80UL)); + v288 = *(u *)((v_d) + (88UL)); #line 1740 "cc1.om" v289 = ((u (*)())(v286))(v287, v288); #line 1741 "cc1.om" @@ -8509,9 +8514,9 @@ b108: v290 = (u)my_add_symbol; #line 1741 "cc1.om" v291 = *(u *)((v_c) + (48UL)); #line 1741 "cc1.om" - v292 = *(u *)(v_d); + v292 = *(u *)((v_d) + (32UL)); #line 1741 "cc1.om" - v293 = *(u *)((v_d) + (80UL)); + v293 = *(u *)((v_d) + (88UL)); #line 1741 "cc1.om" v294 = ((u (*)())(v290))(v291, v292, v293); #line 1742 "cc1.om" @@ -8557,9 +8562,9 @@ b98: v309 = (u)my_find; #line 1747 "cc1.om" b113: v_d = v314; #line 1748 "cc1.om" - if (!(*(u *)((v_d) + (64UL)))) { goto b118; } + if (!(*(u *)((v_d) + (72UL)))) { goto b118; } #line 1748 "cc1.om" -b117: if (!(*(u *)((*(u *)((v_d) + (80UL))) + (16UL)))) { goto b122; } +b117: if (!(*(u *)((*(u *)((v_d) + (88UL))) + (16UL)))) { goto b122; } #line 1748 "cc1.om" b121: v316 = 0UL; #line 1748 "cc1.om" @@ -8577,7 +8582,7 @@ b115: v317 = (u)my_fixup_label; #line 1749 "cc1.om" v318 = *(u *)((v_c) + (48UL)); #line 1749 "cc1.om" - v319 = *(u *)((v_d) + (80UL)); + v319 = *(u *)((v_d) + (88UL)); #line 1749 "cc1.om" v320 = ((u (*)())(v317))(v318, v319); #line 1750 "cc1.om" @@ -8585,9 +8590,9 @@ b124: v321 = (u)my_add_symbol; #line 1750 "cc1.om" v322 = *(u *)((v_c) + (48UL)); #line 1750 "cc1.om" - v323 = *(u *)(v_d); + v323 = *(u *)((v_d) + (32UL)); #line 1750 "cc1.om" - v324 = *(u *)((v_d) + (80UL)); + v324 = *(u *)((v_d) + (88UL)); #line 1750 "cc1.om" v325 = ((u (*)())(v321))(v322, v323, v324); #line 1751 "cc1.om" @@ -8645,9 +8650,9 @@ b114: v346 = (u)my_find; #line 1757 "cc1.om" b130: v_d = v351; #line 1758 "cc1.om" - if (!(*(u *)((v_d) + (64UL)))) { goto b135; } + if (!(*(u *)((v_d) + (72UL)))) { goto b135; } #line 1758 "cc1.om" -b134: if (!(*(u *)((*(u *)((v_d) + (80UL))) + (16UL)))) { goto b139; } +b134: if (!(*(u *)((*(u *)((v_d) + (88UL))) + (16UL)))) { goto b139; } #line 1758 "cc1.om" b138: v353 = 0UL; #line 1758 "cc1.om" @@ -8665,7 +8670,7 @@ b132: v354 = (u)my_fixup_label; #line 1759 "cc1.om" v355 = *(u *)((v_c) + (48UL)); #line 1759 "cc1.om" - v356 = *(u *)((v_d) + (80UL)); + v356 = *(u *)((v_d) + (88UL)); #line 1759 "cc1.om" v357 = ((u (*)())(v354))(v355, v356); #line 1760 "cc1.om" @@ -8673,9 +8678,9 @@ b141: v358 = (u)my_add_symbol; #line 1760 "cc1.om" v359 = *(u *)((v_c) + (48UL)); #line 1760 "cc1.om" - v360 = *(u *)(v_d); + v360 = *(u *)((v_d) + (32UL)); #line 1760 "cc1.om" - v361 = *(u *)((v_d) + (80UL)); + v361 = *(u *)((v_d) + (88UL)); #line 1760 "cc1.om" v362 = ((u (*)())(v358))(v359, v360, v361); #line 1761 "cc1.om" @@ -8729,9 +8734,9 @@ b131: v381 = (u)my_find; #line 1767 "cc1.om" b147: v_d = v386; #line 1768 "cc1.om" - if (!(*(u *)((v_d) + (64UL)))) { goto b152; } + if (!(*(u *)((v_d) + (72UL)))) { goto b152; } #line 1768 "cc1.om" -b151: if (!(*(u *)((*(u *)((v_d) + (80UL))) + (16UL)))) { goto b156; } +b151: if (!(*(u *)((*(u *)((v_d) + (88UL))) + (16UL)))) { goto b156; } #line 1768 "cc1.om" b155: v388 = 0UL; #line 1768 "cc1.om" @@ -8749,7 +8754,7 @@ b149: v389 = (u)my_fixup_label; #line 1769 "cc1.om" v390 = *(u *)((v_c) + (48UL)); #line 1769 "cc1.om" - v391 = *(u *)((v_d) + (80UL)); + v391 = *(u *)((v_d) + (88UL)); #line 1769 "cc1.om" v392 = ((u (*)())(v389))(v390, v391); #line 1770 "cc1.om" @@ -8757,9 +8762,9 @@ b158: v393 = (u)my_add_symbol; #line 1770 "cc1.om" v394 = *(u *)((v_c) + (48UL)); #line 1770 "cc1.om" - v395 = *(u *)(v_d); + v395 = *(u *)((v_d) + (32UL)); #line 1770 "cc1.om" - v396 = *(u *)((v_d) + (80UL)); + v396 = *(u *)((v_d) + (88UL)); #line 1770 "cc1.om" v397 = ((u (*)())(v393))(v394, v395, v396); #line 1771 "cc1.om" @@ -8825,9 +8830,9 @@ b148: v422 = (u)my_find; #line 1778 "cc1.om" b165: v_d = v427; #line 1779 "cc1.om" - if (!(*(u *)((v_d) + (64UL)))) { goto b170; } + if (!(*(u *)((v_d) + (72UL)))) { goto b170; } #line 1779 "cc1.om" -b169: if (!(*(u *)((*(u *)((v_d) + (80UL))) + (16UL)))) { goto b174; } +b169: if (!(*(u *)((*(u *)((v_d) + (88UL))) + (16UL)))) { goto b174; } #line 1779 "cc1.om" b173: v429 = 0UL; #line 1779 "cc1.om" @@ -8845,7 +8850,7 @@ b167: v430 = (u)my_fixup_label; #line 1780 "cc1.om" v431 = *(u *)((v_c) + (48UL)); #line 1780 "cc1.om" - v432 = *(u *)((v_d) + (80UL)); + v432 = *(u *)((v_d) + (88UL)); #line 1780 "cc1.om" v433 = ((u (*)())(v430))(v431, v432); #line 1781 "cc1.om" @@ -8853,9 +8858,9 @@ b176: v434 = (u)my_add_symbol; #line 1781 "cc1.om" v435 = *(u *)((v_c) + (48UL)); #line 1781 "cc1.om" - v436 = *(u *)(v_d); + v436 = *(u *)((v_d) + (32UL)); #line 1781 "cc1.om" - v437 = *(u *)((v_d) + (80UL)); + v437 = *(u *)((v_d) + (88UL)); #line 1781 "cc1.om" v438 = ((u (*)())(v434))(v435, v436, v437); #line 1782 "cc1.om" @@ -8901,9 +8906,9 @@ b166: v453 = (u)my_find; #line 1787 "cc1.om" b181: v_d = v458; #line 1788 "cc1.om" - if (!(*(u *)((v_d) + (64UL)))) { goto b186; } + if (!(*(u *)((v_d) + (72UL)))) { goto b186; } #line 1788 "cc1.om" -b185: if (!(*(u *)((*(u *)((v_d) + (80UL))) + (16UL)))) { goto b190; } +b185: if (!(*(u *)((*(u *)((v_d) + (88UL))) + (16UL)))) { goto b190; } #line 1788 "cc1.om" b189: v460 = 0UL; #line 1788 "cc1.om" @@ -8921,7 +8926,7 @@ b183: v461 = (u)my_fixup_label; #line 1789 "cc1.om" v462 = *(u *)((v_c) + (48UL)); #line 1789 "cc1.om" - v463 = *(u *)((v_d) + (80UL)); + v463 = *(u *)((v_d) + (88UL)); #line 1789 "cc1.om" v464 = ((u (*)())(v461))(v462, v463); #line 1790 "cc1.om" @@ -8929,9 +8934,9 @@ b192: v465 = (u)my_add_symbol; #line 1790 "cc1.om" v466 = *(u *)((v_c) + (48UL)); #line 1790 "cc1.om" - v467 = *(u *)(v_d); + v467 = *(u *)((v_d) + (32UL)); #line 1790 "cc1.om" - v468 = *(u *)((v_d) + (80UL)); + v468 = *(u *)((v_d) + (88UL)); #line 1790 "cc1.om" v469 = ((u (*)())(v465))(v466, v467, v468); #line 1791 "cc1.om" @@ -8989,9 +8994,9 @@ b182: v490 = (u)my_find; #line 1797 "cc1.om" b198: v_d = v495; #line 1798 "cc1.om" - if (!(*(u *)((v_d) + (64UL)))) { goto b203; } + if (!(*(u *)((v_d) + (72UL)))) { goto b203; } #line 1798 "cc1.om" -b202: if (!(*(u *)((*(u *)((v_d) + (80UL))) + (16UL)))) { goto b207; } +b202: if (!(*(u *)((*(u *)((v_d) + (88UL))) + (16UL)))) { goto b207; } #line 1798 "cc1.om" b206: v497 = 0UL; #line 1798 "cc1.om" @@ -9009,7 +9014,7 @@ b200: v498 = (u)my_fixup_label; #line 1799 "cc1.om" v499 = *(u *)((v_c) + (48UL)); #line 1799 "cc1.om" - v500 = *(u *)((v_d) + (80UL)); + v500 = *(u *)((v_d) + (88UL)); #line 1799 "cc1.om" v501 = ((u (*)())(v498))(v499, v500); #line 1800 "cc1.om" @@ -9017,9 +9022,9 @@ b209: v502 = (u)my_add_symbol; #line 1800 "cc1.om" v503 = *(u *)((v_c) + (48UL)); #line 1800 "cc1.om" - v504 = *(u *)(v_d); + v504 = *(u *)((v_d) + (32UL)); #line 1800 "cc1.om" - v505 = *(u *)((v_d) + (80UL)); + v505 = *(u *)((v_d) + (88UL)); #line 1800 "cc1.om" v506 = ((u (*)())(v502))(v503, v504, v505); #line 1801 "cc1.om" @@ -9099,9 +9104,9 @@ b199: v538 = (u)my_find; #line 1809 "cc1.om" b217: v_d = v543; #line 1810 "cc1.om" - if (!(*(u *)((v_d) + (64UL)))) { goto b222; } + if (!(*(u *)((v_d) + (72UL)))) { goto b222; } #line 1810 "cc1.om" -b221: if (!(*(u *)((*(u *)((v_d) + (80UL))) + (16UL)))) { goto b226; } +b221: if (!(*(u *)((*(u *)((v_d) + (88UL))) + (16UL)))) { goto b226; } #line 1810 "cc1.om" b225: v545 = 0UL; #line 1810 "cc1.om" @@ -9119,7 +9124,7 @@ b219: v546 = (u)my_fixup_label; #line 1811 "cc1.om" v547 = *(u *)((v_c) + (48UL)); #line 1811 "cc1.om" - v548 = *(u *)((v_d) + (80UL)); + v548 = *(u *)((v_d) + (88UL)); #line 1811 "cc1.om" v549 = ((u (*)())(v546))(v547, v548); #line 1812 "cc1.om" @@ -9127,9 +9132,9 @@ b228: v550 = (u)my_add_symbol; #line 1812 "cc1.om" v551 = *(u *)((v_c) + (48UL)); #line 1812 "cc1.om" - v552 = *(u *)(v_d); + v552 = *(u *)((v_d) + (32UL)); #line 1812 "cc1.om" - v553 = *(u *)((v_d) + (80UL)); + v553 = *(u *)((v_d) + (88UL)); #line 1812 "cc1.om" v554 = ((u (*)())(v550))(v551, v552, v553); #line 1813 "cc1.om" @@ -9221,9 +9226,9 @@ b218: v592 = (u)my_find; #line 1822 "cc1.om" b237: v_d = v597; #line 1823 "cc1.om" - if (!(*(u *)((v_d) + (64UL)))) { goto b242; } + if (!(*(u *)((v_d) + (72UL)))) { goto b242; } #line 1823 "cc1.om" -b241: if (!(*(u *)((*(u *)((v_d) + (80UL))) + (16UL)))) { goto b246; } +b241: if (!(*(u *)((*(u *)((v_d) + (88UL))) + (16UL)))) { goto b246; } #line 1823 "cc1.om" b245: v599 = 0UL; #line 1823 "cc1.om" @@ -9241,7 +9246,7 @@ b239: v600 = (u)my_fixup_label; #line 1824 "cc1.om" v601 = *(u *)((v_c) + (48UL)); #line 1824 "cc1.om" - v602 = *(u *)((v_d) + (80UL)); + v602 = *(u *)((v_d) + (88UL)); #line 1824 "cc1.om" v603 = ((u (*)())(v600))(v601, v602); #line 1825 "cc1.om" @@ -9249,9 +9254,9 @@ b248: v604 = (u)my_add_symbol; #line 1825 "cc1.om" v605 = *(u *)((v_c) + (48UL)); #line 1825 "cc1.om" - v606 = *(u *)(v_d); + v606 = *(u *)((v_d) + (32UL)); #line 1825 "cc1.om" - v607 = *(u *)((v_d) + (80UL)); + v607 = *(u *)((v_d) + (88UL)); #line 1825 "cc1.om" v608 = ((u (*)())(v604))(v605, v606, v607); #line 1826 "cc1.om" @@ -9289,9 +9294,9 @@ b238: v619 = (u)my_find; #line 1830 "cc1.om" b252: v_d = v624; #line 1831 "cc1.om" - if (!(*(u *)((v_d) + (64UL)))) { goto b257; } + if (!(*(u *)((v_d) + (72UL)))) { goto b257; } #line 1831 "cc1.om" -b256: if (!(*(u *)((*(u *)((v_d) + (80UL))) + (16UL)))) { goto b261; } +b256: if (!(*(u *)((*(u *)((v_d) + (88UL))) + (16UL)))) { goto b261; } #line 1831 "cc1.om" b260: v626 = 0UL; #line 1831 "cc1.om" @@ -9309,7 +9314,7 @@ b254: v627 = (u)my_fixup_label; #line 1832 "cc1.om" v628 = *(u *)((v_c) + (48UL)); #line 1832 "cc1.om" - v629 = *(u *)((v_d) + (80UL)); + v629 = *(u *)((v_d) + (88UL)); #line 1832 "cc1.om" v630 = ((u (*)())(v627))(v628, v629); #line 1833 "cc1.om" @@ -9317,9 +9322,9 @@ b263: v631 = (u)my_add_symbol; #line 1833 "cc1.om" v632 = *(u *)((v_c) + (48UL)); #line 1833 "cc1.om" - v633 = *(u *)(v_d); + v633 = *(u *)((v_d) + (32UL)); #line 1833 "cc1.om" - v634 = *(u *)((v_d) + (80UL)); + v634 = *(u *)((v_d) + (88UL)); #line 1833 "cc1.om" v635 = ((u (*)())(v631))(v632, v633, v634); #line 1834 "cc1.om" @@ -9357,9 +9362,9 @@ b253: v646 = (u)my_find; #line 1838 "cc1.om" b267: v_d = v651; #line 1839 "cc1.om" - if (!(*(u *)((v_d) + (64UL)))) { goto b272; } + if (!(*(u *)((v_d) + (72UL)))) { goto b272; } #line 1839 "cc1.om" -b271: if (!(*(u *)((*(u *)((v_d) + (80UL))) + (16UL)))) { goto b276; } +b271: if (!(*(u *)((*(u *)((v_d) + (88UL))) + (16UL)))) { goto b276; } #line 1839 "cc1.om" b275: v653 = 0UL; #line 1839 "cc1.om" @@ -9377,7 +9382,7 @@ b269: v654 = (u)my_fixup_label; #line 1840 "cc1.om" v655 = *(u *)((v_c) + (48UL)); #line 1840 "cc1.om" - v656 = *(u *)((v_d) + (80UL)); + v656 = *(u *)((v_d) + (88UL)); #line 1840 "cc1.om" v657 = ((u (*)())(v654))(v655, v656); #line 1841 "cc1.om" @@ -9385,9 +9390,9 @@ b278: v658 = (u)my_add_symbol; #line 1841 "cc1.om" v659 = *(u *)((v_c) + (48UL)); #line 1841 "cc1.om" - v660 = *(u *)(v_d); + v660 = *(u *)((v_d) + (32UL)); #line 1841 "cc1.om" - v661 = *(u *)((v_d) + (80UL)); + v661 = *(u *)((v_d) + (88UL)); #line 1841 "cc1.om" v662 = ((u (*)())(v658))(v659, v660, v661); #line 1842 "cc1.om" @@ -9425,9 +9430,9 @@ b268: v673 = (u)my_find; #line 1846 "cc1.om" b282: v_d = v678; #line 1847 "cc1.om" - if (!(*(u *)((v_d) + (64UL)))) { goto b287; } + if (!(*(u *)((v_d) + (72UL)))) { goto b287; } #line 1847 "cc1.om" -b286: if (!(*(u *)((*(u *)((v_d) + (80UL))) + (16UL)))) { goto b291; } +b286: if (!(*(u *)((*(u *)((v_d) + (88UL))) + (16UL)))) { goto b291; } #line 1847 "cc1.om" b290: v680 = 0UL; #line 1847 "cc1.om" @@ -9445,7 +9450,7 @@ b284: v681 = (u)my_fixup_label; #line 1848 "cc1.om" v682 = *(u *)((v_c) + (48UL)); #line 1848 "cc1.om" - v683 = *(u *)((v_d) + (80UL)); + v683 = *(u *)((v_d) + (88UL)); #line 1848 "cc1.om" v684 = ((u (*)())(v681))(v682, v683); #line 1849 "cc1.om" @@ -9453,9 +9458,9 @@ b293: v685 = (u)my_add_symbol; #line 1849 "cc1.om" v686 = *(u *)((v_c) + (48UL)); #line 1849 "cc1.om" - v687 = *(u *)(v_d); + v687 = *(u *)((v_d) + (32UL)); #line 1849 "cc1.om" - v688 = *(u *)((v_d) + (80UL)); + v688 = *(u *)((v_d) + (88UL)); #line 1849 "cc1.om" v689 = ((u (*)())(v685))(v686, v687, v688); #line 1850 "cc1.om" @@ -9493,9 +9498,9 @@ b283: v700 = (u)my_find; #line 1854 "cc1.om" b297: v_d = v705; #line 1855 "cc1.om" - if (!(*(u *)((v_d) + (64UL)))) { goto b302; } + if (!(*(u *)((v_d) + (72UL)))) { goto b302; } #line 1855 "cc1.om" -b301: if (!(*(u *)((*(u *)((v_d) + (80UL))) + (16UL)))) { goto b306; } +b301: if (!(*(u *)((*(u *)((v_d) + (88UL))) + (16UL)))) { goto b306; } #line 1855 "cc1.om" b305: v707 = 0UL; #line 1855 "cc1.om" @@ -9513,7 +9518,7 @@ b299: v708 = (u)my_fixup_label; #line 1856 "cc1.om" v709 = *(u *)((v_c) + (48UL)); #line 1856 "cc1.om" - v710 = *(u *)((v_d) + (80UL)); + v710 = *(u *)((v_d) + (88UL)); #line 1856 "cc1.om" v711 = ((u (*)())(v708))(v709, v710); #line 1857 "cc1.om" @@ -9521,9 +9526,9 @@ b308: v712 = (u)my_add_symbol; #line 1857 "cc1.om" v713 = *(u *)((v_c) + (48UL)); #line 1857 "cc1.om" - v714 = *(u *)(v_d); + v714 = *(u *)((v_d) + (32UL)); #line 1857 "cc1.om" - v715 = *(u *)((v_d) + (80UL)); + v715 = *(u *)((v_d) + (88UL)); #line 1857 "cc1.om" v716 = ((u (*)())(v712))(v713, v714, v715); #line 1858 "cc1.om" @@ -9561,9 +9566,9 @@ b298: v727 = (u)my_find; #line 1862 "cc1.om" b312: v_d = v732; #line 1863 "cc1.om" - if (!(*(u *)((v_d) + (64UL)))) { goto b317; } + if (!(*(u *)((v_d) + (72UL)))) { goto b317; } #line 1863 "cc1.om" -b316: if (!(*(u *)((*(u *)((v_d) + (80UL))) + (16UL)))) { goto b321; } +b316: if (!(*(u *)((*(u *)((v_d) + (88UL))) + (16UL)))) { goto b321; } #line 1863 "cc1.om" b320: v734 = 0UL; #line 1863 "cc1.om" @@ -9581,7 +9586,7 @@ b314: v735 = (u)my_fixup_label; #line 1864 "cc1.om" v736 = *(u *)((v_c) + (48UL)); #line 1864 "cc1.om" - v737 = *(u *)((v_d) + (80UL)); + v737 = *(u *)((v_d) + (88UL)); #line 1864 "cc1.om" v738 = ((u (*)())(v735))(v736, v737); #line 1865 "cc1.om" @@ -9589,9 +9594,9 @@ b323: v739 = (u)my_add_symbol; #line 1865 "cc1.om" v740 = *(u *)((v_c) + (48UL)); #line 1865 "cc1.om" - v741 = *(u *)(v_d); + v741 = *(u *)((v_d) + (32UL)); #line 1865 "cc1.om" - v742 = *(u *)((v_d) + (80UL)); + v742 = *(u *)((v_d) + (88UL)); #line 1865 "cc1.om" v743 = ((u (*)())(v739))(v740, v741, v742); #line 1866 "cc1.om" @@ -9629,9 +9634,9 @@ b313: v754 = (u)my_find; #line 1870 "cc1.om" b327: v_d = v759; #line 1871 "cc1.om" - if (!(*(u *)((v_d) + (64UL)))) { goto b332; } + if (!(*(u *)((v_d) + (72UL)))) { goto b332; } #line 1871 "cc1.om" -b331: if (!(*(u *)((*(u *)((v_d) + (80UL))) + (16UL)))) { goto b336; } +b331: if (!(*(u *)((*(u *)((v_d) + (88UL))) + (16UL)))) { goto b336; } #line 1871 "cc1.om" b335: v761 = 0UL; #line 1871 "cc1.om" @@ -9649,7 +9654,7 @@ b329: v762 = (u)my_fixup_label; #line 1872 "cc1.om" v763 = *(u *)((v_c) + (48UL)); #line 1872 "cc1.om" - v764 = *(u *)((v_d) + (80UL)); + v764 = *(u *)((v_d) + (88UL)); #line 1872 "cc1.om" v765 = ((u (*)())(v762))(v763, v764); #line 1873 "cc1.om" @@ -9657,9 +9662,9 @@ b338: v766 = (u)my_add_symbol; #line 1873 "cc1.om" v767 = *(u *)((v_c) + (48UL)); #line 1873 "cc1.om" - v768 = *(u *)(v_d); + v768 = *(u *)((v_d) + (32UL)); #line 1873 "cc1.om" - v769 = *(u *)((v_d) + (80UL)); + v769 = *(u *)((v_d) + (88UL)); #line 1873 "cc1.om" v770 = ((u (*)())(v766))(v767, v768, v769); #line 1874 "cc1.om" @@ -9697,9 +9702,9 @@ b328: v781 = (u)my_find; #line 1878 "cc1.om" b342: v_d = v786; #line 1879 "cc1.om" - if (!(*(u *)((v_d) + (64UL)))) { goto b347; } + if (!(*(u *)((v_d) + (72UL)))) { goto b347; } #line 1879 "cc1.om" -b346: if (!(*(u *)((*(u *)((v_d) + (80UL))) + (16UL)))) { goto b351; } +b346: if (!(*(u *)((*(u *)((v_d) + (88UL))) + (16UL)))) { goto b351; } #line 1879 "cc1.om" b350: v788 = 0UL; #line 1879 "cc1.om" @@ -9717,7 +9722,7 @@ b344: v789 = (u)my_fixup_label; #line 1880 "cc1.om" v790 = *(u *)((v_c) + (48UL)); #line 1880 "cc1.om" - v791 = *(u *)((v_d) + (80UL)); + v791 = *(u *)((v_d) + (88UL)); #line 1880 "cc1.om" v792 = ((u (*)())(v789))(v790, v791); #line 1881 "cc1.om" @@ -9725,9 +9730,9 @@ b353: v793 = (u)my_add_symbol; #line 1881 "cc1.om" v794 = *(u *)((v_c) + (48UL)); #line 1881 "cc1.om" - v795 = *(u *)(v_d); + v795 = *(u *)((v_d) + (32UL)); #line 1881 "cc1.om" - v796 = *(u *)((v_d) + (80UL)); + v796 = *(u *)((v_d) + (88UL)); #line 1881 "cc1.om" v797 = ((u (*)())(v793))(v794, v795, v796); #line 1882 "cc1.om" @@ -9765,9 +9770,9 @@ b343: v808 = (u)my_find; #line 1886 "cc1.om" b357: v_d = v813; #line 1887 "cc1.om" - if (!(*(u *)((v_d) + (64UL)))) { goto b362; } + if (!(*(u *)((v_d) + (72UL)))) { goto b362; } #line 1887 "cc1.om" -b361: if (!(*(u *)((*(u *)((v_d) + (80UL))) + (16UL)))) { goto b366; } +b361: if (!(*(u *)((*(u *)((v_d) + (88UL))) + (16UL)))) { goto b366; } #line 1887 "cc1.om" b365: v815 = 0UL; #line 1887 "cc1.om" @@ -9785,7 +9790,7 @@ b359: v816 = (u)my_fixup_label; #line 1888 "cc1.om" v817 = *(u *)((v_c) + (48UL)); #line 1888 "cc1.om" - v818 = *(u *)((v_d) + (80UL)); + v818 = *(u *)((v_d) + (88UL)); #line 1888 "cc1.om" v819 = ((u (*)())(v816))(v817, v818); #line 1889 "cc1.om" @@ -9793,9 +9798,9 @@ b368: v820 = (u)my_add_symbol; #line 1889 "cc1.om" v821 = *(u *)((v_c) + (48UL)); #line 1889 "cc1.om" - v822 = *(u *)(v_d); + v822 = *(u *)((v_d) + (32UL)); #line 1889 "cc1.om" - v823 = *(u *)((v_d) + (80UL)); + v823 = *(u *)((v_d) + (88UL)); #line 1889 "cc1.om" v824 = ((u (*)())(v820))(v821, v822, v823); #line 1890 "cc1.om" @@ -9909,9 +9914,9 @@ b358: v873 = (u)my_find; #line 1899 "cc1.om" b377: v_d = v878; #line 1900 "cc1.om" - if (!(*(u *)((v_d) + (64UL)))) { goto b382; } + if (!(*(u *)((v_d) + (72UL)))) { goto b382; } #line 1900 "cc1.om" -b381: if (!(*(u *)((*(u *)((v_d) + (80UL))) + (16UL)))) { goto b386; } +b381: if (!(*(u *)((*(u *)((v_d) + (88UL))) + (16UL)))) { goto b386; } #line 1900 "cc1.om" b385: v880 = 0UL; #line 1900 "cc1.om" @@ -9929,7 +9934,7 @@ b379: v881 = (u)my_fixup_label; #line 1901 "cc1.om" v882 = *(u *)((v_c) + (48UL)); #line 1901 "cc1.om" - v883 = *(u *)((v_d) + (80UL)); + v883 = *(u *)((v_d) + (88UL)); #line 1901 "cc1.om" v884 = ((u (*)())(v881))(v882, v883); #line 1902 "cc1.om" @@ -9937,9 +9942,9 @@ b388: v885 = (u)my_add_symbol; #line 1902 "cc1.om" v886 = *(u *)((v_c) + (48UL)); #line 1902 "cc1.om" - v887 = *(u *)(v_d); + v887 = *(u *)((v_d) + (32UL)); #line 1902 "cc1.om" - v888 = *(u *)((v_d) + (80UL)); + v888 = *(u *)((v_d) + (88UL)); #line 1902 "cc1.om" v889 = ((u (*)())(v885))(v886, v887, v888); #line 1903 "cc1.om" @@ -10053,9 +10058,9 @@ b378: v938 = (u)my_find; #line 1912 "cc1.om" b397: v_d = v943; #line 1913 "cc1.om" - if (!(*(u *)((v_d) + (64UL)))) { goto b402; } + if (!(*(u *)((v_d) + (72UL)))) { goto b402; } #line 1913 "cc1.om" -b401: if (!(*(u *)((*(u *)((v_d) + (80UL))) + (16UL)))) { goto b406; } +b401: if (!(*(u *)((*(u *)((v_d) + (88UL))) + (16UL)))) { goto b406; } #line 1913 "cc1.om" b405: v945 = 0UL; #line 1913 "cc1.om" @@ -10073,7 +10078,7 @@ b399: v946 = (u)my_fixup_label; #line 1914 "cc1.om" v947 = *(u *)((v_c) + (48UL)); #line 1914 "cc1.om" - v948 = *(u *)((v_d) + (80UL)); + v948 = *(u *)((v_d) + (88UL)); #line 1914 "cc1.om" v949 = ((u (*)())(v946))(v947, v948); #line 1915 "cc1.om" @@ -10081,9 +10086,9 @@ b408: v950 = (u)my_add_symbol; #line 1915 "cc1.om" v951 = *(u *)((v_c) + (48UL)); #line 1915 "cc1.om" - v952 = *(u *)(v_d); + v952 = *(u *)((v_d) + (32UL)); #line 1915 "cc1.om" - v953 = *(u *)((v_d) + (80UL)); + v953 = *(u *)((v_d) + (88UL)); #line 1915 "cc1.om" v954 = ((u (*)())(v950))(v951, v952, v953); #line 1916 "cc1.om" @@ -10119,9 +10124,9 @@ b398: v964 = (u)my_find; #line 1920 "cc1.om" b412: v_d = v969; #line 1921 "cc1.om" - if (!(*(u *)((v_d) + (64UL)))) { goto b417; } + if (!(*(u *)((v_d) + (72UL)))) { goto b417; } #line 1921 "cc1.om" -b416: if (!(*(u *)((*(u *)((v_d) + (80UL))) + (16UL)))) { goto b421; } +b416: if (!(*(u *)((*(u *)((v_d) + (88UL))) + (16UL)))) { goto b421; } #line 1921 "cc1.om" b420: v971 = 0UL; #line 1921 "cc1.om" @@ -10139,7 +10144,7 @@ b414: v972 = (u)my_fixup_label; #line 1922 "cc1.om" v973 = *(u *)((v_c) + (48UL)); #line 1922 "cc1.om" - v974 = *(u *)((v_d) + (80UL)); + v974 = *(u *)((v_d) + (88UL)); #line 1922 "cc1.om" v975 = ((u (*)())(v972))(v973, v974); #line 1923 "cc1.om" @@ -10147,9 +10152,9 @@ b423: v976 = (u)my_add_symbol; #line 1923 "cc1.om" v977 = *(u *)((v_c) + (48UL)); #line 1923 "cc1.om" - v978 = *(u *)(v_d); + v978 = *(u *)((v_d) + (32UL)); #line 1923 "cc1.om" - v979 = *(u *)((v_d) + (80UL)); + v979 = *(u *)((v_d) + (88UL)); #line 1923 "cc1.om" v980 = ((u (*)())(v976))(v977, v978, v979); #line 1924 "cc1.om" @@ -10185,9 +10190,9 @@ b413: v990 = (u)my_find; #line 1928 "cc1.om" b427: v_d = v995; #line 1929 "cc1.om" - if (!(*(u *)((v_d) + (64UL)))) { goto b432; } + if (!(*(u *)((v_d) + (72UL)))) { goto b432; } #line 1929 "cc1.om" -b431: if (!(*(u *)((*(u *)((v_d) + (80UL))) + (16UL)))) { goto b436; } +b431: if (!(*(u *)((*(u *)((v_d) + (88UL))) + (16UL)))) { goto b436; } #line 1929 "cc1.om" b435: v997 = 0UL; #line 1929 "cc1.om" @@ -10205,7 +10210,7 @@ b429: v998 = (u)my_fixup_label; #line 1930 "cc1.om" v999 = *(u *)((v_c) + (48UL)); #line 1930 "cc1.om" - v1000 = *(u *)((v_d) + (80UL)); + v1000 = *(u *)((v_d) + (88UL)); #line 1930 "cc1.om" v1001 = ((u (*)())(v998))(v999, v1000); #line 1931 "cc1.om" @@ -10213,9 +10218,9 @@ b438: v1002 = (u)my_add_symbol; #line 1931 "cc1.om" v1003 = *(u *)((v_c) + (48UL)); #line 1931 "cc1.om" - v1004 = *(u *)(v_d); + v1004 = *(u *)((v_d) + (32UL)); #line 1931 "cc1.om" - v1005 = *(u *)((v_d) + (80UL)); + v1005 = *(u *)((v_d) + (88UL)); #line 1931 "cc1.om" v1006 = ((u (*)())(v1002))(v1003, v1004, v1005); #line 1932 "cc1.om" @@ -10447,9 +10452,9 @@ b428: v1114 = (u)my_find; #line 1963 "cc1.om" b463: v_d = v1119; #line 1964 "cc1.om" - if (!(*(u *)((v_d) + (64UL)))) { goto b468; } + if (!(*(u *)((v_d) + (72UL)))) { goto b468; } #line 1964 "cc1.om" -b467: if (!(*(u *)((*(u *)((v_d) + (80UL))) + (16UL)))) { goto b472; } +b467: if (!(*(u *)((*(u *)((v_d) + (88UL))) + (16UL)))) { goto b472; } #line 1964 "cc1.om" b471: v1121 = 0UL; #line 1964 "cc1.om" @@ -10467,7 +10472,7 @@ b465: v1122 = (u)my_fixup_label; #line 1965 "cc1.om" v1123 = *(u *)((v_c) + (48UL)); #line 1965 "cc1.om" - v1124 = *(u *)((v_d) + (80UL)); + v1124 = *(u *)((v_d) + (88UL)); #line 1965 "cc1.om" v1125 = ((u (*)())(v1122))(v1123, v1124); #line 1966 "cc1.om" @@ -10475,9 +10480,9 @@ b474: v1126 = (u)my_add_symbol; #line 1966 "cc1.om" v1127 = *(u *)((v_c) + (48UL)); #line 1966 "cc1.om" - v1128 = *(u *)(v_d); + v1128 = *(u *)((v_d) + (32UL)); #line 1966 "cc1.om" - v1129 = *(u *)((v_d) + (80UL)); + v1129 = *(u *)((v_d) + (88UL)); #line 1966 "cc1.om" v1130 = ((u (*)())(v1126))(v1127, v1128, v1129); #line 1967 "cc1.om" @@ -10511,9 +10516,9 @@ b464: v1139 = (u)my_find; #line 1971 "cc1.om" b478: v_d = v1144; #line 1972 "cc1.om" - if (!(*(u *)((v_d) + (64UL)))) { goto b483; } + if (!(*(u *)((v_d) + (72UL)))) { goto b483; } #line 1972 "cc1.om" -b482: if (!(*(u *)((*(u *)((v_d) + (80UL))) + (16UL)))) { goto b487; } +b482: if (!(*(u *)((*(u *)((v_d) + (88UL))) + (16UL)))) { goto b487; } #line 1972 "cc1.om" b486: v1146 = 0UL; #line 1972 "cc1.om" @@ -10531,7 +10536,7 @@ b480: v1147 = (u)my_fixup_label; #line 1973 "cc1.om" v1148 = *(u *)((v_c) + (48UL)); #line 1973 "cc1.om" - v1149 = *(u *)((v_d) + (80UL)); + v1149 = *(u *)((v_d) + (88UL)); #line 1973 "cc1.om" v1150 = ((u (*)())(v1147))(v1148, v1149); #line 1974 "cc1.om" @@ -10539,9 +10544,9 @@ b489: v1151 = (u)my_add_symbol; #line 1974 "cc1.om" v1152 = *(u *)((v_c) + (48UL)); #line 1974 "cc1.om" - v1153 = *(u *)(v_d); + v1153 = *(u *)((v_d) + (32UL)); #line 1974 "cc1.om" - v1154 = *(u *)((v_d) + (80UL)); + v1154 = *(u *)((v_d) + (88UL)); #line 1974 "cc1.om" v1155 = ((u (*)())(v1151))(v1152, v1153, v1154); #line 1975 "cc1.om" @@ -10575,9 +10580,9 @@ b479: v1164 = (u)my_find; #line 1979 "cc1.om" b493: v_d = v1169; #line 1980 "cc1.om" - if (!(*(u *)((v_d) + (64UL)))) { goto b498; } + if (!(*(u *)((v_d) + (72UL)))) { goto b498; } #line 1980 "cc1.om" -b497: if (!(*(u *)((*(u *)((v_d) + (80UL))) + (16UL)))) { goto b502; } +b497: if (!(*(u *)((*(u *)((v_d) + (88UL))) + (16UL)))) { goto b502; } #line 1980 "cc1.om" b501: v1171 = 0UL; #line 1980 "cc1.om" @@ -10595,7 +10600,7 @@ b495: v1172 = (u)my_fixup_label; #line 1981 "cc1.om" v1173 = *(u *)((v_c) + (48UL)); #line 1981 "cc1.om" - v1174 = *(u *)((v_d) + (80UL)); + v1174 = *(u *)((v_d) + (88UL)); #line 1981 "cc1.om" v1175 = ((u (*)())(v1172))(v1173, v1174); #line 1982 "cc1.om" @@ -10603,9 +10608,9 @@ b504: v1176 = (u)my_add_symbol; #line 1982 "cc1.om" v1177 = *(u *)((v_c) + (48UL)); #line 1982 "cc1.om" - v1178 = *(u *)(v_d); + v1178 = *(u *)((v_d) + (32UL)); #line 1982 "cc1.om" - v1179 = *(u *)((v_d) + (80UL)); + v1179 = *(u *)((v_d) + (88UL)); #line 1982 "cc1.om" v1180 = ((u (*)())(v1176))(v1177, v1178, v1179); #line 1983 "cc1.om" @@ -10639,9 +10644,9 @@ b494: v1189 = (u)my_find; #line 1987 "cc1.om" b508: v_d = v1194; #line 1988 "cc1.om" - if (!(*(u *)((v_d) + (64UL)))) { goto b513; } + if (!(*(u *)((v_d) + (72UL)))) { goto b513; } #line 1988 "cc1.om" -b512: if (!(*(u *)((*(u *)((v_d) + (80UL))) + (16UL)))) { goto b517; } +b512: if (!(*(u *)((*(u *)((v_d) + (88UL))) + (16UL)))) { goto b517; } #line 1988 "cc1.om" b516: v1196 = 0UL; #line 1988 "cc1.om" @@ -10659,7 +10664,7 @@ b510: v1197 = (u)my_fixup_label; #line 1989 "cc1.om" v1198 = *(u *)((v_c) + (48UL)); #line 1989 "cc1.om" - v1199 = *(u *)((v_d) + (80UL)); + v1199 = *(u *)((v_d) + (88UL)); #line 1989 "cc1.om" v1200 = ((u (*)())(v1197))(v1198, v1199); #line 1990 "cc1.om" @@ -10667,9 +10672,9 @@ b519: v1201 = (u)my_add_symbol; #line 1990 "cc1.om" v1202 = *(u *)((v_c) + (48UL)); #line 1990 "cc1.om" - v1203 = *(u *)(v_d); + v1203 = *(u *)((v_d) + (32UL)); #line 1990 "cc1.om" - v1204 = *(u *)((v_d) + (80UL)); + v1204 = *(u *)((v_d) + (88UL)); #line 1990 "cc1.om" v1205 = ((u (*)())(v1201))(v1202, v1203, v1204); #line 1991 "cc1.om" @@ -10713,9 +10718,9 @@ b509: v1219 = (u)my_find; #line 1996 "cc1.om" b524: v_d = v1224; #line 1997 "cc1.om" - if (!(*(u *)((v_d) + (64UL)))) { goto b529; } + if (!(*(u *)((v_d) + (72UL)))) { goto b529; } #line 1997 "cc1.om" -b528: if (!(*(u *)((*(u *)((v_d) + (80UL))) + (16UL)))) { goto b533; } +b528: if (!(*(u *)((*(u *)((v_d) + (88UL))) + (16UL)))) { goto b533; } #line 1997 "cc1.om" b532: v1226 = 0UL; #line 1997 "cc1.om" @@ -10733,7 +10738,7 @@ b526: v1227 = (u)my_fixup_label; #line 1998 "cc1.om" v1228 = *(u *)((v_c) + (48UL)); #line 1998 "cc1.om" - v1229 = *(u *)((v_d) + (80UL)); + v1229 = *(u *)((v_d) + (88UL)); #line 1998 "cc1.om" v1230 = ((u (*)())(v1227))(v1228, v1229); #line 1999 "cc1.om" @@ -10741,9 +10746,9 @@ b535: v1231 = (u)my_add_symbol; #line 1999 "cc1.om" v1232 = *(u *)((v_c) + (48UL)); #line 1999 "cc1.om" - v1233 = *(u *)(v_d); + v1233 = *(u *)((v_d) + (32UL)); #line 1999 "cc1.om" - v1234 = *(u *)((v_d) + (80UL)); + v1234 = *(u *)((v_d) + (88UL)); #line 1999 "cc1.om" v1235 = ((u (*)())(v1231))(v1232, v1233, v1234); #line 2000 "cc1.om" @@ -10787,9 +10792,9 @@ b525: v1249 = (u)my_find; #line 2005 "cc1.om" b540: v_d = v1254; #line 2006 "cc1.om" - if (!(*(u *)((v_d) + (64UL)))) { goto b545; } + if (!(*(u *)((v_d) + (72UL)))) { goto b545; } #line 2006 "cc1.om" -b544: if (!(*(u *)((*(u *)((v_d) + (80UL))) + (16UL)))) { goto b549; } +b544: if (!(*(u *)((*(u *)((v_d) + (88UL))) + (16UL)))) { goto b549; } #line 2006 "cc1.om" b548: v1256 = 0UL; #line 2006 "cc1.om" @@ -10807,7 +10812,7 @@ b542: v1257 = (u)my_fixup_label; #line 2007 "cc1.om" v1258 = *(u *)((v_c) + (48UL)); #line 2007 "cc1.om" - v1259 = *(u *)((v_d) + (80UL)); + v1259 = *(u *)((v_d) + (88UL)); #line 2007 "cc1.om" v1260 = ((u (*)())(v1257))(v1258, v1259); #line 2008 "cc1.om" @@ -10815,9 +10820,9 @@ b551: v1261 = (u)my_add_symbol; #line 2008 "cc1.om" v1262 = *(u *)((v_c) + (48UL)); #line 2008 "cc1.om" - v1263 = *(u *)(v_d); + v1263 = *(u *)((v_d) + (32UL)); #line 2008 "cc1.om" - v1264 = *(u *)((v_d) + (80UL)); + v1264 = *(u *)((v_d) + (88UL)); #line 2008 "cc1.om" v1265 = ((u (*)())(v1261))(v1262, v1263, v1264); #line 2009 "cc1.om" @@ -10859,9 +10864,9 @@ b541: v1278 = (u)my_find; #line 2013 "cc1.om" b555: v_d = v1283; #line 2014 "cc1.om" - if (!(*(u *)((v_d) + (64UL)))) { goto b560; } + if (!(*(u *)((v_d) + (72UL)))) { goto b560; } #line 2014 "cc1.om" -b559: if (!(*(u *)((*(u *)((v_d) + (80UL))) + (16UL)))) { goto b564; } +b559: if (!(*(u *)((*(u *)((v_d) + (88UL))) + (16UL)))) { goto b564; } #line 2014 "cc1.om" b563: v1285 = 0UL; #line 2014 "cc1.om" @@ -10879,7 +10884,7 @@ b557: v1286 = (u)my_fixup_label; #line 2015 "cc1.om" v1287 = *(u *)((v_c) + (48UL)); #line 2015 "cc1.om" - v1288 = *(u *)((v_d) + (80UL)); + v1288 = *(u *)((v_d) + (88UL)); #line 2015 "cc1.om" v1289 = ((u (*)())(v1286))(v1287, v1288); #line 2016 "cc1.om" @@ -10887,9 +10892,9 @@ b566: v1290 = (u)my_add_symbol; #line 2016 "cc1.om" v1291 = *(u *)((v_c) + (48UL)); #line 2016 "cc1.om" - v1292 = *(u *)(v_d); + v1292 = *(u *)((v_d) + (32UL)); #line 2016 "cc1.om" - v1293 = *(u *)((v_d) + (80UL)); + v1293 = *(u *)((v_d) + (88UL)); #line 2016 "cc1.om" v1294 = ((u (*)())(v1290))(v1291, v1292, v1293); #line 2017 "cc1.om" @@ -10931,9 +10936,9 @@ b556: v1307 = (u)my_find; #line 2021 "cc1.om" b570: v_d = v1312; #line 2022 "cc1.om" - if (!(*(u *)((v_d) + (64UL)))) { goto b575; } + if (!(*(u *)((v_d) + (72UL)))) { goto b575; } #line 2022 "cc1.om" -b574: if (!(*(u *)((*(u *)((v_d) + (80UL))) + (16UL)))) { goto b579; } +b574: if (!(*(u *)((*(u *)((v_d) + (88UL))) + (16UL)))) { goto b579; } #line 2022 "cc1.om" b578: v1314 = 0UL; #line 2022 "cc1.om" @@ -10951,7 +10956,7 @@ b572: v1315 = (u)my_fixup_label; #line 2023 "cc1.om" v1316 = *(u *)((v_c) + (48UL)); #line 2023 "cc1.om" - v1317 = *(u *)((v_d) + (80UL)); + v1317 = *(u *)((v_d) + (88UL)); #line 2023 "cc1.om" v1318 = ((u (*)())(v1315))(v1316, v1317); #line 2024 "cc1.om" @@ -10959,9 +10964,9 @@ b581: v1319 = (u)my_add_symbol; #line 2024 "cc1.om" v1320 = *(u *)((v_c) + (48UL)); #line 2024 "cc1.om" - v1321 = *(u *)(v_d); + v1321 = *(u *)((v_d) + (32UL)); #line 2024 "cc1.om" - v1322 = *(u *)((v_d) + (80UL)); + v1322 = *(u *)((v_d) + (88UL)); #line 2024 "cc1.om" v1323 = ((u (*)())(v1319))(v1320, v1321, v1322); #line 2025 "cc1.om" @@ -10993,9 +10998,9 @@ b571: v1331 = (u)my_find; #line 2029 "cc1.om" b585: v_d = v1336; #line 2030 "cc1.om" - if (!(*(u *)((v_d) + (64UL)))) { goto b590; } + if (!(*(u *)((v_d) + (72UL)))) { goto b590; } #line 2030 "cc1.om" -b589: if (!(*(u *)((*(u *)((v_d) + (80UL))) + (16UL)))) { goto b594; } +b589: if (!(*(u *)((*(u *)((v_d) + (88UL))) + (16UL)))) { goto b594; } #line 2030 "cc1.om" b593: v1338 = 0UL; #line 2030 "cc1.om" @@ -11013,7 +11018,7 @@ b587: v1339 = (u)my_fixup_label; #line 2031 "cc1.om" v1340 = *(u *)((v_c) + (48UL)); #line 2031 "cc1.om" - v1341 = *(u *)((v_d) + (80UL)); + v1341 = *(u *)((v_d) + (88UL)); #line 2031 "cc1.om" v1342 = ((u (*)())(v1339))(v1340, v1341); #line 2032 "cc1.om" @@ -11021,9 +11026,9 @@ b596: v1343 = (u)my_add_symbol; #line 2032 "cc1.om" v1344 = *(u *)((v_c) + (48UL)); #line 2032 "cc1.om" - v1345 = *(u *)(v_d); + v1345 = *(u *)((v_d) + (32UL)); #line 2032 "cc1.om" - v1346 = *(u *)((v_d) + (80UL)); + v1346 = *(u *)((v_d) + (88UL)); #line 2032 "cc1.om" v1347 = ((u (*)())(v1343))(v1344, v1345, v1346); #line 2033 "cc1.om" @@ -11055,9 +11060,9 @@ b586: v1355 = (u)my_find; #line 2037 "cc1.om" b600: v_d = v1360; #line 2038 "cc1.om" - if (!(*(u *)((v_d) + (64UL)))) { goto b605; } + if (!(*(u *)((v_d) + (72UL)))) { goto b605; } #line 2038 "cc1.om" -b604: if (!(*(u *)((*(u *)((v_d) + (80UL))) + (16UL)))) { goto b609; } +b604: if (!(*(u *)((*(u *)((v_d) + (88UL))) + (16UL)))) { goto b609; } #line 2038 "cc1.om" b608: v1362 = 0UL; #line 2038 "cc1.om" @@ -11075,7 +11080,7 @@ b602: v1363 = (u)my_fixup_label; #line 2039 "cc1.om" v1364 = *(u *)((v_c) + (48UL)); #line 2039 "cc1.om" - v1365 = *(u *)((v_d) + (80UL)); + v1365 = *(u *)((v_d) + (88UL)); #line 2039 "cc1.om" v1366 = ((u (*)())(v1363))(v1364, v1365); #line 2040 "cc1.om" @@ -11083,9 +11088,9 @@ b611: v1367 = (u)my_add_symbol; #line 2040 "cc1.om" v1368 = *(u *)((v_c) + (48UL)); #line 2040 "cc1.om" - v1369 = *(u *)(v_d); + v1369 = *(u *)((v_d) + (32UL)); #line 2040 "cc1.om" - v1370 = *(u *)((v_d) + (80UL)); + v1370 = *(u *)((v_d) + (88UL)); #line 2040 "cc1.om" v1371 = ((u (*)())(v1367))(v1368, v1369, v1370); #line 2041 "cc1.om" @@ -11155,9 +11160,9 @@ b601: v1398 = (u)my_find; #line 2047 "cc1.om" b617: v_d = v1403; #line 2048 "cc1.om" - if (!(*(u *)((v_d) + (64UL)))) { goto b622; } + if (!(*(u *)((v_d) + (72UL)))) { goto b622; } #line 2048 "cc1.om" -b621: if (!(*(u *)((*(u *)((v_d) + (80UL))) + (16UL)))) { goto b626; } +b621: if (!(*(u *)((*(u *)((v_d) + (88UL))) + (16UL)))) { goto b626; } #line 2048 "cc1.om" b625: v1405 = 0UL; #line 2048 "cc1.om" @@ -11175,7 +11180,7 @@ b619: v1406 = (u)my_fixup_label; #line 2049 "cc1.om" v1407 = *(u *)((v_c) + (48UL)); #line 2049 "cc1.om" - v1408 = *(u *)((v_d) + (80UL)); + v1408 = *(u *)((v_d) + (88UL)); #line 2049 "cc1.om" v1409 = ((u (*)())(v1406))(v1407, v1408); #line 2050 "cc1.om" @@ -11183,9 +11188,9 @@ b628: v1410 = (u)my_add_symbol; #line 2050 "cc1.om" v1411 = *(u *)((v_c) + (48UL)); #line 2050 "cc1.om" - v1412 = *(u *)(v_d); + v1412 = *(u *)((v_d) + (32UL)); #line 2050 "cc1.om" - v1413 = *(u *)((v_d) + (80UL)); + v1413 = *(u *)((v_d) + (88UL)); #line 2050 "cc1.om" v1414 = ((u (*)())(v1410))(v1411, v1412, v1413); #line 2051 "cc1.om" @@ -11233,9 +11238,9 @@ b618: v1428 = (u)my_find; #line 2057 "cc1.om" b632: v_d = v1433; #line 2058 "cc1.om" - if (!(*(u *)((v_d) + (64UL)))) { goto b637; } + if (!(*(u *)((v_d) + (72UL)))) { goto b637; } #line 2058 "cc1.om" -b636: if (!(*(u *)((*(u *)((v_d) + (80UL))) + (16UL)))) { goto b641; } +b636: if (!(*(u *)((*(u *)((v_d) + (88UL))) + (16UL)))) { goto b641; } #line 2058 "cc1.om" b640: v1435 = 0UL; #line 2058 "cc1.om" @@ -11253,7 +11258,7 @@ b634: v1436 = (u)my_fixup_label; #line 2059 "cc1.om" v1437 = *(u *)((v_c) + (48UL)); #line 2059 "cc1.om" - v1438 = *(u *)((v_d) + (80UL)); + v1438 = *(u *)((v_d) + (88UL)); #line 2059 "cc1.om" v1439 = ((u (*)())(v1436))(v1437, v1438); #line 2060 "cc1.om" @@ -11261,9 +11266,9 @@ b643: v1440 = (u)my_add_symbol; #line 2060 "cc1.om" v1441 = *(u *)((v_c) + (48UL)); #line 2060 "cc1.om" - v1442 = *(u *)(v_d); + v1442 = *(u *)((v_d) + (32UL)); #line 2060 "cc1.om" - v1443 = *(u *)((v_d) + (80UL)); + v1443 = *(u *)((v_d) + (88UL)); #line 2060 "cc1.om" v1444 = ((u (*)())(v1440))(v1441, v1442, v1443); #line 2061 "cc1.om" @@ -11311,9 +11316,9 @@ b633: v1458 = (u)my_find; #line 2067 "cc1.om" b647: v_d = v1463; #line 2068 "cc1.om" - if (!(*(u *)((v_d) + (64UL)))) { goto b652; } + if (!(*(u *)((v_d) + (72UL)))) { goto b652; } #line 2068 "cc1.om" -b651: if (!(*(u *)((*(u *)((v_d) + (80UL))) + (16UL)))) { goto b656; } +b651: if (!(*(u *)((*(u *)((v_d) + (88UL))) + (16UL)))) { goto b656; } #line 2068 "cc1.om" b655: v1465 = 0UL; #line 2068 "cc1.om" @@ -11331,7 +11336,7 @@ b649: v1466 = (u)my_fixup_label; #line 2069 "cc1.om" v1467 = *(u *)((v_c) + (48UL)); #line 2069 "cc1.om" - v1468 = *(u *)((v_d) + (80UL)); + v1468 = *(u *)((v_d) + (88UL)); #line 2069 "cc1.om" v1469 = ((u (*)())(v1466))(v1467, v1468); #line 2070 "cc1.om" @@ -11339,9 +11344,9 @@ b658: v1470 = (u)my_add_symbol; #line 2070 "cc1.om" v1471 = *(u *)((v_c) + (48UL)); #line 2070 "cc1.om" - v1472 = *(u *)(v_d); + v1472 = *(u *)((v_d) + (32UL)); #line 2070 "cc1.om" - v1473 = *(u *)((v_d) + (80UL)); + v1473 = *(u *)((v_d) + (88UL)); #line 2070 "cc1.om" v1474 = ((u (*)())(v1470))(v1471, v1472, v1473); #line 2071 "cc1.om" @@ -11401,9 +11406,9 @@ b648: v1494 = (u)my_find; #line 2078 "cc1.om" b663: v_d = v1499; #line 2079 "cc1.om" - if (!(*(u *)((v_d) + (64UL)))) { goto b668; } + if (!(*(u *)((v_d) + (72UL)))) { goto b668; } #line 2079 "cc1.om" -b667: if (!(*(u *)((*(u *)((v_d) + (80UL))) + (16UL)))) { goto b672; } +b667: if (!(*(u *)((*(u *)((v_d) + (88UL))) + (16UL)))) { goto b672; } #line 2079 "cc1.om" b671: v1501 = 0UL; #line 2079 "cc1.om" @@ -11421,7 +11426,7 @@ b665: v1502 = (u)my_fixup_label; #line 2080 "cc1.om" v1503 = *(u *)((v_c) + (48UL)); #line 2080 "cc1.om" - v1504 = *(u *)((v_d) + (80UL)); + v1504 = *(u *)((v_d) + (88UL)); #line 2080 "cc1.om" v1505 = ((u (*)())(v1502))(v1503, v1504); #line 2081 "cc1.om" @@ -11429,9 +11434,9 @@ b674: v1506 = (u)my_add_symbol; #line 2081 "cc1.om" v1507 = *(u *)((v_c) + (48UL)); #line 2081 "cc1.om" - v1508 = *(u *)(v_d); + v1508 = *(u *)((v_d) + (32UL)); #line 2081 "cc1.om" - v1509 = *(u *)((v_d) + (80UL)); + v1509 = *(u *)((v_d) + (88UL)); #line 2081 "cc1.om" v1510 = ((u (*)())(v1506))(v1507, v1508, v1509); #line 2082 "cc1.om" @@ -11479,9 +11484,9 @@ b664: v1524 = (u)my_find; #line 2088 "cc1.om" b678: v_d = v1529; #line 2089 "cc1.om" - if (!(*(u *)((v_d) + (64UL)))) { goto b683; } + if (!(*(u *)((v_d) + (72UL)))) { goto b683; } #line 2089 "cc1.om" -b682: if (!(*(u *)((*(u *)((v_d) + (80UL))) + (16UL)))) { goto b687; } +b682: if (!(*(u *)((*(u *)((v_d) + (88UL))) + (16UL)))) { goto b687; } #line 2089 "cc1.om" b686: v1531 = 0UL; #line 2089 "cc1.om" @@ -11499,7 +11504,7 @@ b680: v1532 = (u)my_fixup_label; #line 2090 "cc1.om" v1533 = *(u *)((v_c) + (48UL)); #line 2090 "cc1.om" - v1534 = *(u *)((v_d) + (80UL)); + v1534 = *(u *)((v_d) + (88UL)); #line 2090 "cc1.om" v1535 = ((u (*)())(v1532))(v1533, v1534); #line 2091 "cc1.om" @@ -11507,9 +11512,9 @@ b689: v1536 = (u)my_add_symbol; #line 2091 "cc1.om" v1537 = *(u *)((v_c) + (48UL)); #line 2091 "cc1.om" - v1538 = *(u *)(v_d); + v1538 = *(u *)((v_d) + (32UL)); #line 2091 "cc1.om" - v1539 = *(u *)((v_d) + (80UL)); + v1539 = *(u *)((v_d) + (88UL)); #line 2091 "cc1.om" v1540 = ((u (*)())(v1536))(v1537, v1538, v1539); #line 2092 "cc1.om" @@ -11545,9 +11550,9 @@ b679: v1550 = (u)my_find; #line 2096 "cc1.om" b693: v_d = v1555; #line 2097 "cc1.om" - if (!(*(u *)((v_d) + (64UL)))) { goto b698; } + if (!(*(u *)((v_d) + (72UL)))) { goto b698; } #line 2097 "cc1.om" -b697: if (!(*(u *)((*(u *)((v_d) + (80UL))) + (16UL)))) { goto b702; } +b697: if (!(*(u *)((*(u *)((v_d) + (88UL))) + (16UL)))) { goto b702; } #line 2097 "cc1.om" b701: v1557 = 0UL; #line 2097 "cc1.om" @@ -11565,7 +11570,7 @@ b695: v1558 = (u)my_fixup_label; #line 2098 "cc1.om" v1559 = *(u *)((v_c) + (48UL)); #line 2098 "cc1.om" - v1560 = *(u *)((v_d) + (80UL)); + v1560 = *(u *)((v_d) + (88UL)); #line 2098 "cc1.om" v1561 = ((u (*)())(v1558))(v1559, v1560); #line 2099 "cc1.om" @@ -11573,9 +11578,9 @@ b704: v1562 = (u)my_add_symbol; #line 2099 "cc1.om" v1563 = *(u *)((v_c) + (48UL)); #line 2099 "cc1.om" - v1564 = *(u *)(v_d); + v1564 = *(u *)((v_d) + (32UL)); #line 2099 "cc1.om" - v1565 = *(u *)((v_d) + (80UL)); + v1565 = *(u *)((v_d) + (88UL)); #line 2099 "cc1.om" v1566 = ((u (*)())(v1562))(v1563, v1564, v1565); #line 2102 "cc1.om" @@ -14152,9 +14157,9 @@ b107: v379 = (u)my_find; #line 1628 "cc1.om" b108: v_d = v384; #line 1629 "cc1.om" - if (!(*(u *)((v_d) + (64UL)))) { goto b113; } + if (!(*(u *)((v_d) + (72UL)))) { goto b113; } #line 1629 "cc1.om" -b112: if (!(*(u *)((*(u *)((v_d) + (80UL))) + (16UL)))) { goto b113; } +b112: if (!(*(u *)((*(u *)((v_d) + (88UL))) + (16UL)))) { goto b113; } #line 1629 "cc1.om" b114: v385 = 1UL; #line 1629 "cc1.om" @@ -14168,7 +14173,7 @@ b110: v386 = (u)my_as_jmp; #line 1630 "cc1.om" v388 = 232UL; #line 1630 "cc1.om" - v389 = *(u *)((v_d) + (80UL)); + v389 = *(u *)((v_d) + (88UL)); #line 1630 "cc1.om" v390 = ((u (*)())(v386))(v387, v388, v389); #line 1634 "cc1.om" @@ -18927,7 +18932,7 @@ b17: v20 = (u)my_as_modra; #line 1424 "cc1.om" v23 = 4UL; #line 1424 "cc1.om" - v24 = *(u *)((v_v) + (184UL)); + v24 = *(u *)((v_v) + (192UL)); #line 1424 "cc1.om" v25 = ((u (*)())(v20))(v21, v22, v23, v24); #line 1426 "cc1.om" @@ -18983,7 +18988,7 @@ b35: v43 = (u)my_as_modra; #line 1433 "cc1.om" v46 = 4UL; #line 1433 "cc1.om" - v47 = *(u *)((v_v) + (184UL)); + v47 = *(u *)((v_v) + (192UL)); #line 1433 "cc1.om" v48 = ((u (*)())(v43))(v44, v45, v46, v47); #line 1435 "cc1.om" @@ -19037,7 +19042,7 @@ b38: v62 = (u)my_as_modrm; #line 1441 "cc1.om" v68 = 0UL; #line 1441 "cc1.om" - v69 = *(u *)((v_v) + (184UL)); + v69 = *(u *)((v_v) + (192UL)); #line 1441 "cc1.om" v70 = ((u (*)())(v62))(v63, v64, v65, v66, v67, v68, v69); #line 1442 "cc1.om" @@ -19519,7 +19524,7 @@ b95: v301 = (u)my_as_modra; #line 1481 "cc1.om" v304 = 0UL; #line 1481 "cc1.om" - v305 = *(u *)((v_v) + (184UL)); + v305 = *(u *)((v_v) + (192UL)); #line 1481 "cc1.om" v306 = ((u (*)())(v301))(v302, v303, v304, v305); #line 1482 "cc1.om" @@ -19623,9 +19628,9 @@ b103: v350 = (u)my_find; #line 1494 "cc1.om" b104: v_d = v355; #line 1495 "cc1.om" - if (!(*(u *)((v_d) + (64UL)))) { goto b109; } + if (!(*(u *)((v_d) + (72UL)))) { goto b109; } #line 1495 "cc1.om" -b108: if (!(*(u *)((*(u *)((v_d) + (80UL))) + (16UL)))) { goto b109; } +b108: if (!(*(u *)((*(u *)((v_d) + (88UL))) + (16UL)))) { goto b109; } #line 1495 "cc1.om" b110: v356 = 1UL; #line 1495 "cc1.om" @@ -19639,7 +19644,7 @@ b106: v357 = (u)my_as_jmp; #line 1496 "cc1.om" v359 = 232UL; #line 1496 "cc1.om" - v360 = *(u *)((v_d) + (80UL)); + v360 = *(u *)((v_d) + (88UL)); #line 1496 "cc1.om" v361 = ((u (*)())(v357))(v358, v359, v360); #line 1499 "cc1.om" @@ -19979,7 +19984,7 @@ b109: v356 = 0UL; #line 1495 "cc1.om" goto b111; #line 1475 "cc1.om" -b84: if (!(*(u *)((v_v) + (168UL)))) { goto b92; } +b84: if (!(*(u *)((v_v) + (176UL)))) { goto b92; } #line 1475 "cc1.om" b91: v292 = 0UL; #line 1475 "cc1.om" @@ -20003,7 +20008,7 @@ b88: v291 = 1UL; #line 1475 "cc1.om" goto b89; #line 1436 "cc1.om" -b42: if (!(*(u *)((v_v) + (168UL)))) { goto b50; } +b42: if (!(*(u *)((v_v) + (176UL)))) { goto b50; } #line 1436 "cc1.om" b49: v57 = 0UL; #line 1436 "cc1.om" @@ -20027,7 +20032,7 @@ b46: v56 = 1UL; #line 1436 "cc1.om" goto b47; #line 1427 "cc1.om" -b24: if (!(*(u *)((v_v) + (168UL)))) { goto b32; } +b24: if (!(*(u *)((v_v) + (176UL)))) { goto b32; } #line 1427 "cc1.om" b31: v34 = 0UL; #line 1427 "cc1.om" @@ -20051,7 +20056,7 @@ b28: v33 = 1UL; #line 1427 "cc1.om" goto b29; #line 1418 "cc1.om" -b6: if (!(*(u *)((v_v) + (168UL)))) { goto b14; } +b6: if (!(*(u *)((v_v) + (176UL)))) { goto b14; } #line 1418 "cc1.om" b13: v11 = 0UL; #line 1418 "cc1.om" @@ -21002,7 +21007,7 @@ b34: v_v = v59; #line 482 "ir.om" if (!(v_v)) { goto b39; } #line 482 "ir.om" -b38: if (!(*(u *)((v_v) + (200UL)))) { goto b39; } +b38: if (!(*(u *)((v_v) + (208UL)))) { goto b39; } #line 482 "ir.om" b40: v60 = 1UL; #line 482 "ir.om" @@ -21014,7 +21019,7 @@ b36: v61 = (u)my_mkirconst; #line 483 "ir.om" v62 = v_ic; #line 483 "ir.om" - v63 = *(u *)((v_v) + (208UL)); + v63 = *(u *)((v_v) + (216UL)); #line 483 "ir.om" v64 = ((u (*)())(v61))(v62, v63); #line 483 "ir.om" @@ -21054,7 +21059,7 @@ b47: v_o = v74; #line 496 "ir.om" b44: if (!(v_v)) { goto b52; } #line 496 "ir.om" -b51: if (!(*(u *)((v_v) + (64UL)))) { goto b52; } +b51: if (!(*(u *)((v_v) + (72UL)))) { goto b52; } #line 496 "ir.om" b53: v75 = 1UL; #line 496 "ir.om" @@ -21110,7 +21115,7 @@ b62: v_b = v87; #line 506 "ir.om" v89 = *(u *)(v_ic); #line 506 "ir.om" - v90 = *(u *)(*(u *)((*(u *)((*(u *)((*(u *)((v_n) + (8UL))) + (64UL))) + (16UL))) + (8UL))); + v90 = *(u *)((*(u *)((*(u *)((*(u *)((*(u *)((v_n) + (8UL))) + (64UL))) + (16UL))) + (8UL))) + (32UL)); #line 506 "ir.om" v91 = *(u *)((*(u *)((v_n) + (16UL))) + (56UL)); #line 506 "ir.om" @@ -21126,7 +21131,7 @@ b59: v113 = (u)my_mkirconst; #line 519 "ir.om" v114 = v_ic; #line 519 "ir.om" - v115 = *(u *)((v_v) + (184UL)); + v115 = *(u *)((v_v) + (192UL)); #line 519 "ir.om" v116 = ((u (*)())(v113))(v114, v115); #line 519 "ir.om" @@ -21198,7 +21203,7 @@ b65: v107 = (u)my_find; #line 517 "ir.om" v108 = *(u *)(v_ic); #line 517 "ir.om" - v109 = *(u *)(*(u *)((*(u *)((*(u *)((v_n) + (8UL))) + (64UL))) + (8UL))); + v109 = *(u *)((*(u *)((*(u *)((*(u *)((v_n) + (8UL))) + (64UL))) + (8UL))) + (32UL)); #line 517 "ir.om" v110 = *(u *)((*(u *)((v_n) + (16UL))) + (56UL)); #line 517 "ir.om" @@ -22938,9 +22943,9 @@ u my_fillpos(u v_c, u v_n) { b0: return 0UL; } u my_find(u v_c, u v_name, u v_member_name, u v_make) { + u v_link = 0; u v_p = 0; u v_d = 0; - u v_link = 0; u v_dir = 0; u v8 = 0; u v9 = 0; @@ -22967,233 +22972,243 @@ u my_find(u v_c, u v_name, u v_member_name, u v_make) { u v30 = 0; u v31 = 0; u v32 = 0; -#line 51 "decl.om" + u v33 = 0; + u v34 = 0; + u v35 = 0; + u v36 = 0; + u v37 = 0; + u v38 = 0; +#line 50 "decl.om" b0: v_p = 0UL; -#line 52 "decl.om" +#line 51 "decl.om" v_link = (v_c) + (56UL); -#line 53 "decl.om" +#line 52 "decl.om" goto b1; -#line 54 "decl.om" +#line 53 "decl.om" b1: v_d = *(u *)(v_link); -#line 55 "decl.om" +#line 54 "decl.om" if (!(v_d)) { goto b7; } -#line 55 "decl.om" +#line 54 "decl.om" b6: v8 = 0UL; -#line 55 "decl.om" +#line 54 "decl.om" goto b8; -#line 55 "decl.om" +#line 54 "decl.om" b8: if (!(v8)) { goto b3; } -#line 85 "decl.om" +#line 84 "decl.om" b2: if (!(v_make)) { goto b46; } -#line 85 "decl.om" +#line 84 "decl.om" b45: v22 = 0UL; -#line 85 "decl.om" +#line 84 "decl.om" goto b47; -#line 85 "decl.om" +#line 84 "decl.om" b47: if (!(v22)) { goto b42; } -#line 86 "decl.om" +#line 85 "decl.om" b43: return 0UL; -#line 89 "decl.om" +#line 88 "decl.om" b42: v23 = (u)my_alloc; -#line 89 "decl.om" +#line 88 "decl.om" v24 = *(u *)(v_c); -#line 89 "decl.om" - v25 = 272UL; -#line 89 "decl.om" +#line 88 "decl.om" + v25 = 280UL; +#line 88 "decl.om" v26 = ((u (*)())(v23))(v24, v25); -#line 89 "decl.om" +#line 88 "decl.om" b48: v_d = v26; +#line 90 "decl.om" + *(u *)((v_d) + (32UL)) = v_name; #line 91 "decl.om" - *(u *)(v_d) = v_name; -#line 92 "decl.om" - *(u *)((v_d) + (8UL)) = v_member_name; -#line 94 "decl.om" - *(u *)((v_d) + (16UL)) = v_p; + *(u *)((v_d) + (40UL)) = v_member_name; +#line 93 "decl.om" + v27 = (u)my_rb_link; +#line 93 "decl.om" + v28 = (v_c) + (56UL); +#line 93 "decl.om" + v29 = v_link; +#line 93 "decl.om" + v30 = v_p; +#line 93 "decl.om" + v31 = v_d; +#line 93 "decl.om" + v32 = ((u (*)())(v27))(v28, v29, v30, v31); #line 95 "decl.om" - *(u *)((v_d) + (24UL)) = 0UL; -#line 96 "decl.om" - *(u *)((v_d) + (32UL)) = 0UL; +b49: *(u *)((v_d) + (48UL)) = 0UL; +#line 97 "decl.om" + *(u *)((v_d) + (72UL)) = 0UL; #line 98 "decl.om" - *(u *)((v_d) + (40UL)) = 0UL; + *(u *)((v_d) + (80UL)) = 0UL; +#line 99 "decl.om" + v33 = (u)my_mklabel; +#line 99 "decl.om" + v34 = *(u *)((v_c) + (48UL)); +#line 99 "decl.om" + v35 = ((u (*)())(v33))(v34); +#line 99 "decl.om" +b50: *(u *)((v_d) + (88UL)) = v35; #line 100 "decl.om" - *(u *)((v_d) + (64UL)) = 0UL; + *(u *)((v_d) + (96UL)) = 0UL; #line 101 "decl.om" - *(u *)((v_d) + (72UL)) = 0UL; -#line 102 "decl.om" - v27 = (u)my_mklabel; -#line 102 "decl.om" - v28 = *(u *)((v_c) + (48UL)); -#line 102 "decl.om" - v29 = ((u (*)())(v27))(v28); -#line 102 "decl.om" -b49: *(u *)((v_d) + (80UL)) = v29; + *(u *)((v_d) + (112UL)) = 0UL; #line 103 "decl.om" - *(u *)((v_d) + (88UL)) = 0UL; -#line 104 "decl.om" - *(u *)((v_d) + (104UL)) = 0UL; -#line 106 "decl.om" - *(u *)((v_d) + (128UL)) = 0UL; -#line 107 "decl.om" *(u *)((v_d) + (136UL)) = 0UL; -#line 108 "decl.om" +#line 104 "decl.om" *(u *)((v_d) + (144UL)) = 0UL; -#line 109 "decl.om" +#line 105 "decl.om" *(u *)((v_d) + (152UL)) = 0UL; -#line 111 "decl.om" - *(u *)((v_d) + (168UL)) = 0UL; -#line 112 "decl.om" +#line 106 "decl.om" + *(u *)((v_d) + (160UL)) = 0UL; +#line 108 "decl.om" *(u *)((v_d) + (176UL)) = 0UL; -#line 113 "decl.om" +#line 109 "decl.om" *(u *)((v_d) + (184UL)) = 0UL; -#line 114 "decl.om" +#line 110 "decl.om" *(u *)((v_d) + (192UL)) = 0UL; -#line 116 "decl.om" +#line 111 "decl.om" *(u *)((v_d) + (200UL)) = 0UL; -#line 117 "decl.om" +#line 113 "decl.om" *(u *)((v_d) + (208UL)) = 0UL; -#line 118 "decl.om" +#line 114 "decl.om" *(u *)((v_d) + (216UL)) = 0UL; -#line 120 "decl.om" +#line 115 "decl.om" *(u *)((v_d) + (224UL)) = 0UL; -#line 121 "decl.om" +#line 117 "decl.om" *(u *)((v_d) + (232UL)) = 0UL; -#line 122 "decl.om" +#line 118 "decl.om" *(u *)((v_d) + (240UL)) = 0UL; -#line 123 "decl.om" +#line 119 "decl.om" *(u *)((v_d) + (248UL)) = 0UL; -#line 125 "decl.om" +#line 120 "decl.om" *(u *)((v_d) + (256UL)) = 0UL; -#line 126 "decl.om" - v30 = (u)my_mklabel; -#line 126 "decl.om" - v31 = *(u *)((v_c) + (48UL)); -#line 126 "decl.om" - v32 = ((u (*)())(v30))(v31); -#line 126 "decl.om" -b50: *(u *)((v_d) + (264UL)) = v32; -#line 128 "decl.om" - *(u *)(v_link) = v_d; -#line 130 "decl.om" +#line 122 "decl.om" + *(u *)((v_d) + (264UL)) = 0UL; +#line 123 "decl.om" + v36 = (u)my_mklabel; +#line 123 "decl.om" + v37 = *(u *)((v_c) + (48UL)); +#line 123 "decl.om" + v38 = ((u (*)())(v36))(v37); +#line 123 "decl.om" +b51: *(u *)((v_d) + (272UL)) = v38; +#line 125 "decl.om" return v_d; -#line 85 "decl.om" +#line 84 "decl.om" b46: v22 = 1UL; -#line 85 "decl.om" +#line 84 "decl.om" goto b47; -#line 59 "decl.om" +#line 58 "decl.om" b3: v9 = (u)my_strcmp; -#line 59 "decl.om" +#line 58 "decl.om" v10 = v_name; -#line 59 "decl.om" - v11 = *(u *)(v_d); -#line 59 "decl.om" +#line 58 "decl.om" + v11 = *(u *)((v_d) + (32UL)); +#line 58 "decl.om" v12 = ((u (*)())(v9))(v10, v11); -#line 59 "decl.om" +#line 58 "decl.om" b9: v_dir = v12; -#line 61 "decl.om" +#line 60 "decl.om" if (!((u)(((s)(v_dir)) == ((s)(0UL))))) { goto b10; } -#line 62 "decl.om" +#line 61 "decl.om" b11: if (!(v_member_name)) { goto b21; } -#line 62 "decl.om" +#line 61 "decl.om" b20: v14 = 0UL; -#line 62 "decl.om" +#line 61 "decl.om" goto b22; -#line 62 "decl.om" +#line 61 "decl.om" b22: if (!(v14)) { goto b17; } -#line 62 "decl.om" -b16: if (!(*(u *)((v_d) + (8UL)))) { goto b24; } -#line 62 "decl.om" +#line 61 "decl.om" +b16: if (!(*(u *)((v_d) + (40UL)))) { goto b24; } +#line 61 "decl.om" b23: v15 = 0UL; -#line 62 "decl.om" +#line 61 "decl.om" goto b25; -#line 62 "decl.om" +#line 61 "decl.om" b25: if (!(v15)) { goto b17; } -#line 62 "decl.om" +#line 61 "decl.om" b18: v13 = 1UL; -#line 62 "decl.om" +#line 61 "decl.om" goto b19; -#line 62 "decl.om" +#line 61 "decl.om" b19: if (!(v13)) { goto b15; } -#line 63 "decl.om" +#line 62 "decl.om" b14: v_dir = 0UL; -#line 63 "decl.om" +#line 62 "decl.om" goto b10; -#line 73 "decl.om" +#line 72 "decl.om" b10: if (!((u)(((s)(v_dir)) < ((s)(0UL))))) { goto b39; } +#line 73 "decl.om" +b38: v_link = (v_d) + (16UL); +#line 74 "decl.om" + v_p = v_d; #line 74 "decl.om" -b38: v_p = v_d; -#line 75 "decl.om" - v_link = (v_d) + (24UL); -#line 75 "decl.om" goto b1; -#line 76 "decl.om" +#line 75 "decl.om" b39: if (!((u)(((s)(v_dir)) > ((s)(0UL))))) { goto b41; } +#line 76 "decl.om" +b40: v_link = (v_d) + (24UL); +#line 77 "decl.om" + v_p = v_d; #line 77 "decl.om" -b40: v_p = v_d; -#line 78 "decl.om" - v_link = (v_d) + (32UL); -#line 78 "decl.om" goto b1; -#line 80 "decl.om" +#line 79 "decl.om" b41: return v_d; -#line 64 "decl.om" +#line 63 "decl.om" b15: if (!(v_member_name)) { goto b29; } -#line 64 "decl.om" +#line 63 "decl.om" b28: v16 = 0UL; -#line 64 "decl.om" +#line 63 "decl.om" goto b30; -#line 64 "decl.om" +#line 63 "decl.om" b30: if (!(v16)) { goto b27; } -#line 65 "decl.om" +#line 64 "decl.om" b26: v_dir = -1UL; -#line 65 "decl.om" +#line 64 "decl.om" goto b10; -#line 66 "decl.om" -b27: if (!(*(u *)((v_d) + (8UL)))) { goto b34; } -#line 66 "decl.om" +#line 65 "decl.om" +b27: if (!(*(u *)((v_d) + (40UL)))) { goto b34; } +#line 65 "decl.om" b33: v17 = 0UL; -#line 66 "decl.om" +#line 65 "decl.om" goto b35; -#line 66 "decl.om" +#line 65 "decl.om" b35: if (!(v17)) { goto b32; } -#line 67 "decl.om" +#line 66 "decl.om" b31: v_dir = 1UL; -#line 67 "decl.om" +#line 66 "decl.om" goto b10; -#line 69 "decl.om" +#line 68 "decl.om" b32: v18 = (u)my_strcmp; -#line 69 "decl.om" +#line 68 "decl.om" v19 = v_member_name; -#line 69 "decl.om" - v20 = *(u *)((v_d) + (8UL)); -#line 69 "decl.om" +#line 68 "decl.om" + v20 = *(u *)((v_d) + (40UL)); +#line 68 "decl.om" v21 = ((u (*)())(v18))(v19, v20); -#line 69 "decl.om" +#line 68 "decl.om" b36: v_dir = v21; -#line 69 "decl.om" +#line 68 "decl.om" goto b10; -#line 66 "decl.om" +#line 65 "decl.om" b34: v17 = 1UL; -#line 66 "decl.om" +#line 65 "decl.om" goto b35; -#line 64 "decl.om" +#line 63 "decl.om" b29: v16 = 1UL; -#line 64 "decl.om" +#line 63 "decl.om" goto b30; -#line 62 "decl.om" +#line 61 "decl.om" b17: v13 = 0UL; -#line 62 "decl.om" +#line 61 "decl.om" goto b19; -#line 62 "decl.om" +#line 61 "decl.om" b24: v15 = 1UL; -#line 62 "decl.om" +#line 61 "decl.om" goto b25; -#line 62 "decl.om" +#line 61 "decl.om" b21: v14 = 1UL; -#line 62 "decl.om" +#line 61 "decl.om" goto b22; -#line 55 "decl.om" +#line 54 "decl.om" b7: v8 = 1UL; -#line 55 "decl.om" +#line 54 "decl.om" goto b8; } u my_find_section(u v_c, u v_name) { @@ -23239,42 +23254,31 @@ b7: v3 = 1UL; goto b8; } u my_first_decl(u v_c) { - u v_d = 0; + u v1 = 0; u v2 = 0; u v3 = 0; -#line 137 "decl.om" -b0: v_d = *(u *)((v_c) + (56UL)); -#line 138 "decl.om" - if (!(v_d)) { goto b5; } -#line 138 "decl.om" -b4: v2 = 0UL; -#line 138 "decl.om" + u v4 = 0; +#line 130 "decl.om" +b0: if (!(*(u *)((v_c) + (56UL)))) { goto b5; } +#line 130 "decl.om" +b4: v1 = 0UL; +#line 130 "decl.om" goto b6; -#line 138 "decl.om" -b6: if (!(v2)) { goto b7; } -#line 139 "decl.om" +#line 130 "decl.om" +b6: if (!(v1)) { goto b1; } +#line 131 "decl.om" b2: return 0UL; -#line 143 "decl.om" -b7: if (!(*(u *)((v_d) + (24UL)))) { goto b13; } -#line 143 "decl.om" -b12: v3 = 0UL; -#line 143 "decl.om" - goto b14; -#line 143 "decl.om" -b14: if (!(v3)) { goto b9; } -#line 144 "decl.om" -b10: return v_d; -#line 147 "decl.om" -b9: v_d = *(u *)((v_d) + (24UL)); -#line 147 "decl.om" - goto b7; -#line 143 "decl.om" -b13: v3 = 1UL; -#line 143 "decl.om" - goto b14; -#line 138 "decl.om" -b5: v2 = 1UL; -#line 138 "decl.om" +#line 133 "decl.om" +b1: v2 = (u)my_rb_first; +#line 133 "decl.om" + v3 = *(u *)((v_c) + (56UL)); +#line 133 "decl.om" + v4 = ((u (*)())(v2))(v3); +#line 133 "decl.om" +b7: return v4; +#line 130 "decl.om" +b5: v1 = 1UL; +#line 130 "decl.om" goto b6; } u my_fixup(u v_c, u v_here, u v_delta) { @@ -24298,7 +24302,7 @@ b33: v_name = *(u *)((*(u *)((v_n) + (8UL))) + (56UL)); #line 1306 "cc1.om" v30 = v_c; #line 1306 "cc1.om" - v31 = *(u *)(v_d); + v31 = *(u *)((v_d) + (32UL)); #line 1306 "cc1.om" v32 = v_name; #line 1306 "cc1.om" @@ -24308,7 +24312,7 @@ b33: v_name = *(u *)((*(u *)((v_n) + (8UL))) + (56UL)); #line 1306 "cc1.om" b35: v_v = v34; #line 1308 "cc1.om" - if (!(*(u *)((v_v) + (256UL)))) { goto b36; } + if (!(*(u *)((v_v) + (264UL)))) { goto b36; } #line 1309 "cc1.om" b37: v35 = (u)my_cdie; #line 1309 "cc1.om" @@ -24318,7 +24322,7 @@ b37: v35 = (u)my_cdie; #line 1309 "cc1.om" v38 = ((u (*)())(v35))(v36, v37); #line 1311 "cc1.om" -b36: *(u *)((v_v) + (256UL)) = 1UL; +b36: *(u *)((v_v) + (264UL)) = 1UL; #line 1313 "cc1.om" return v_offset; #line 1314 "cc1.om" @@ -24344,7 +24348,7 @@ b42: v_t = v42; #line 1323 "cc1.om" v44 = v_c; #line 1323 "cc1.om" - v45 = *(u *)(v_d); + v45 = *(u *)((v_d) + (32UL)); #line 1323 "cc1.om" v46 = v_name; #line 1323 "cc1.om" @@ -24354,7 +24358,7 @@ b42: v_t = v42; #line 1323 "cc1.om" b43: v_v = v48; #line 1325 "cc1.om" - if (!(*(u *)((v_v) + (224UL)))) { goto b44; } + if (!(*(u *)((v_v) + (232UL)))) { goto b44; } #line 1326 "cc1.om" b45: v49 = (u)my_cdie; #line 1326 "cc1.om" @@ -24364,9 +24368,9 @@ b45: v49 = (u)my_cdie; #line 1326 "cc1.om" v52 = ((u (*)())(v49))(v50, v51); #line 1329 "cc1.om" -b44: *(u *)((v_v) + (232UL)) = v_t; +b44: *(u *)((v_v) + (240UL)) = v_t; #line 1330 "cc1.om" - *(u *)((v_v) + (224UL)) = 1UL; + *(u *)((v_v) + (232UL)) = 1UL; #line 1332 "cc1.om" v53 = (u)my_type_sizeof; #line 1332 "cc1.om" @@ -24378,7 +24382,7 @@ b44: *(u *)((v_v) + (232UL)) = v_t; #line 1332 "cc1.om" b48: v_offset = (v_offset) + (v56); #line 1334 "cc1.om" - *(u *)((v_v) + (240UL)) = -(v_offset); + *(u *)((v_v) + (248UL)) = -(v_offset); #line 1336 "cc1.om" return v_offset; #line 1277 "cc1.om" @@ -26859,7 +26863,7 @@ u my_ircdefine(u v_c, u v_d) { u v81 = 0; u v82 = 0; #line 98 "ircout.om" -b0: v_ic = *(u *)((v_d) + (120UL)); +b0: v_ic = *(u *)((v_d) + (128UL)); #line 99 "ircout.om" if (!(v_ic)) { goto b5; } #line 99 "ircout.om" @@ -27121,7 +27125,7 @@ u my_ircforward(u v_c, u v_d) { u v10 = 0; u v11 = 0; #line 81 "ircout.om" -b0: v_ic = *(u *)((v_d) + (120UL)); +b0: v_ic = *(u *)((v_d) + (128UL)); #line 82 "ircout.om" if (!(v_ic)) { goto b5; } #line 82 "ircout.om" @@ -29260,9 +29264,9 @@ b32: v72 = (u)my_fflush; #line 1 "ircout.om" b48: return 0UL; #line 39 "ircout.om" -b33: if (!(*(u *)((v_d) + (104UL)))) { goto b43; } +b33: if (!(*(u *)((v_d) + (112UL)))) { goto b43; } #line 39 "ircout.om" -b42: if (!(*(u *)((v_d) + (64UL)))) { goto b43; } +b42: if (!(*(u *)((v_d) + (72UL)))) { goto b43; } #line 39 "ircout.om" b44: v63 = 1UL; #line 39 "ircout.om" @@ -29298,9 +29302,9 @@ b37: v62 = 1UL; #line 35 "ircout.om" goto b38; #line 15 "ircout.om" -b7: if (!(*(u *)((v_d) + (104UL)))) { goto b17; } +b7: if (!(*(u *)((v_d) + (112UL)))) { goto b17; } #line 15 "ircout.om" -b16: if (!(*(u *)((v_d) + (64UL)))) { goto b17; } +b16: if (!(*(u *)((v_d) + (72UL)))) { goto b17; } #line 15 "ircout.om" b18: v18 = 1UL; #line 15 "ircout.om" @@ -31777,9 +31781,9 @@ u my_layout_struct(u v_c, u v_d) { u v28 = 0; u v29 = 0; #line 574 "cc1.om" -b0: if (!(*(u *)((v_d) + (144UL)))) { goto b1; } +b0: if (!(*(u *)((v_d) + (152UL)))) { goto b1; } #line 575 "cc1.om" -b2: if (!((u)(((s)(*(u *)((v_d) + (144UL)))) == ((s)(2UL))))) { goto b4; } +b2: if (!((u)(((s)(*(u *)((v_d) + (152UL)))) == ((s)(2UL))))) { goto b4; } #line 576 "cc1.om" b5: v7 = (u)my_cdie; #line 576 "cc1.om" @@ -31791,9 +31795,9 @@ b5: v7 = (u)my_cdie; #line 579 "cc1.om" b4: return 0UL; #line 582 "cc1.om" -b1: *(u *)((v_d) + (144UL)) = 2UL; +b1: *(u *)((v_d) + (152UL)) = 2UL; #line 584 "cc1.om" - v_m = *(u *)((*(u *)((v_d) + (152UL))) + (16UL)); + v_m = *(u *)((*(u *)((v_d) + (160UL))) + (16UL)); #line 586 "cc1.om" v_offset = 0UL; #line 587 "cc1.om" @@ -31807,9 +31811,9 @@ b13: v11 = 0UL; #line 588 "cc1.om" b15: if (!(v11)) { goto b10; } #line 615 "cc1.om" -b9: *(u *)((v_d) + (136UL)) = v_offset; +b9: *(u *)((v_d) + (144UL)) = v_offset; #line 616 "cc1.om" - *(u *)((v_d) + (144UL)) = 1UL; + *(u *)((v_d) + (152UL)) = 1UL; #line 567 "cc1.om" return 0UL; #line 592 "cc1.om" @@ -31835,7 +31839,7 @@ b16: v_t = v15; #line 599 "cc1.om" v17 = v_c; #line 599 "cc1.om" - v18 = *(u *)(v_d); + v18 = *(u *)((v_d) + (32UL)); #line 599 "cc1.om" v19 = v_name; #line 599 "cc1.om" @@ -31845,7 +31849,7 @@ b16: v_t = v15; #line 599 "cc1.om" b17: v_md = v21; #line 601 "cc1.om" - if (!(*(u *)((v_d) + (168UL)))) { goto b18; } + if (!(*(u *)((v_d) + (176UL)))) { goto b18; } #line 602 "cc1.om" b19: v22 = (u)my_cdie; #line 602 "cc1.om" @@ -31855,13 +31859,13 @@ b19: v22 = (u)my_cdie; #line 602 "cc1.om" v25 = ((u (*)())(v22))(v23, v24); #line 605 "cc1.om" -b18: *(u *)((v_md) + (168UL)) = 1UL; +b18: *(u *)((v_md) + (176UL)) = 1UL; #line 606 "cc1.om" - *(u *)((v_md) + (176UL)) = v_t; + *(u *)((v_md) + (184UL)) = v_t; #line 607 "cc1.om" - *(u *)((v_md) + (184UL)) = v_offset; + *(u *)((v_md) + (192UL)) = v_offset; #line 608 "cc1.om" - *(u *)((v_md) + (192UL)) = v_m; + *(u *)((v_md) + (200UL)) = v_m; #line 610 "cc1.om" v26 = (u)my_type_sizeof; #line 610 "cc1.om" @@ -31912,9 +31916,9 @@ u my_layout_union(u v_c, u v_d) { u v29 = 0; u v30 = 0; #line 627 "cc1.om" -b0: if (!(*(u *)((v_d) + (144UL)))) { goto b1; } +b0: if (!(*(u *)((v_d) + (152UL)))) { goto b1; } #line 628 "cc1.om" -b2: if (!((u)(((s)(*(u *)((v_d) + (144UL)))) == ((s)(2UL))))) { goto b4; } +b2: if (!((u)(((s)(*(u *)((v_d) + (152UL)))) == ((s)(2UL))))) { goto b4; } #line 629 "cc1.om" b5: v8 = (u)my_cdie; #line 629 "cc1.om" @@ -31926,9 +31930,9 @@ b5: v8 = (u)my_cdie; #line 632 "cc1.om" b4: return 0UL; #line 635 "cc1.om" -b1: *(u *)((v_d) + (144UL)) = 2UL; +b1: *(u *)((v_d) + (152UL)) = 2UL; #line 637 "cc1.om" - v_m = *(u *)((*(u *)((v_d) + (152UL))) + (16UL)); + v_m = *(u *)((*(u *)((v_d) + (160UL))) + (16UL)); #line 639 "cc1.om" v_size = 0UL; #line 640 "cc1.om" @@ -31942,9 +31946,9 @@ b13: v12 = 0UL; #line 641 "cc1.om" b15: if (!(v12)) { goto b10; } #line 671 "cc1.om" -b9: *(u *)((v_d) + (136UL)) = v_size; +b9: *(u *)((v_d) + (144UL)) = v_size; #line 672 "cc1.om" - *(u *)((v_d) + (144UL)) = 1UL; + *(u *)((v_d) + (152UL)) = 1UL; #line 619 "cc1.om" return 0UL; #line 645 "cc1.om" @@ -31970,7 +31974,7 @@ b16: v_t = v16; #line 652 "cc1.om" v18 = v_c; #line 652 "cc1.om" - v19 = *(u *)(v_d); + v19 = *(u *)((v_d) + (32UL)); #line 652 "cc1.om" v20 = v_name; #line 652 "cc1.om" @@ -31980,7 +31984,7 @@ b16: v_t = v16; #line 652 "cc1.om" b17: v_md = v22; #line 654 "cc1.om" - if (!(*(u *)((v_d) + (168UL)))) { goto b18; } + if (!(*(u *)((v_d) + (176UL)))) { goto b18; } #line 655 "cc1.om" b19: v23 = (u)my_cdie; #line 655 "cc1.om" @@ -31990,13 +31994,13 @@ b19: v23 = (u)my_cdie; #line 655 "cc1.om" v26 = ((u (*)())(v23))(v24, v25); #line 658 "cc1.om" -b18: *(u *)((v_md) + (168UL)) = 1UL; +b18: *(u *)((v_md) + (176UL)) = 1UL; #line 659 "cc1.om" - *(u *)((v_md) + (176UL)) = v_t; + *(u *)((v_md) + (184UL)) = v_t; #line 660 "cc1.om" - *(u *)((v_md) + (184UL)) = 0UL; + *(u *)((v_md) + (192UL)) = 0UL; #line 661 "cc1.om" - *(u *)((v_md) + (192UL)) = v_m; + *(u *)((v_md) + (200UL)) = v_m; #line 663 "cc1.om" v27 = (u)my_type_sizeof; #line 663 "cc1.om" @@ -33070,7 +33074,7 @@ b21: v_v = v17; #line 302 "cc1.om" if (!(v_v)) { goto b26; } #line 302 "cc1.om" -b25: if (!(*(u *)((v_v) + (200UL)))) { goto b26; } +b25: if (!(*(u *)((v_v) + (208UL)))) { goto b26; } #line 302 "cc1.om" b27: v18 = 1UL; #line 302 "cc1.om" @@ -33084,7 +33088,7 @@ b22: v19 = (u)my_find; #line 306 "cc1.om" v20 = v_c; #line 306 "cc1.om" - v21 = *(u *)(v_d); + v21 = *(u *)((v_d) + (32UL)); #line 306 "cc1.om" v22 = *(u *)((v_n) + (56UL)); #line 306 "cc1.om" @@ -33096,7 +33100,7 @@ b29: v_v = v24; #line 307 "cc1.om" if (!(v_v)) { goto b34; } #line 307 "cc1.om" -b33: if (!(*(u *)((v_v) + (224UL)))) { goto b34; } +b33: if (!(*(u *)((v_v) + (232UL)))) { goto b34; } #line 307 "cc1.om" b35: v25 = 1UL; #line 307 "cc1.om" @@ -33122,7 +33126,7 @@ b37: v_v = v31; #line 312 "cc1.om" if (!(v_v)) { goto b42; } #line 312 "cc1.om" -b41: if (!(*(u *)((v_v) + (64UL)))) { goto b42; } +b41: if (!(*(u *)((v_v) + (72UL)))) { goto b42; } #line 312 "cc1.om" b43: v32 = 1UL; #line 312 "cc1.om" @@ -33755,9 +33759,9 @@ b2: v4 = (u)my_find; #line 254 "cc1.om" v5 = v_c; #line 254 "cc1.om" - v6 = *(u *)(v_d); + v6 = *(u *)((v_d) + (32UL)); #line 254 "cc1.om" - v7 = *(u *)(v_v); + v7 = *(u *)((v_v) + (32UL)); #line 254 "cc1.om" v8 = 1UL; #line 254 "cc1.om" @@ -33767,7 +33771,7 @@ b4: v_edge = v9; #line 255 "cc1.om" if (!(*(u *)((v_c) + (80UL)))) { goto b9; } #line 255 "cc1.om" -b8: if (!(*(u *)((v_edge) + (48UL)))) { goto b13; } +b8: if (!(*(u *)((v_edge) + (56UL)))) { goto b13; } #line 255 "cc1.om" b12: v11 = 0UL; #line 255 "cc1.om" @@ -33785,7 +33789,7 @@ b6: v12 = (u)my_fputs; #line 256 "cc1.om" v13 = *(u *)((v_c) + (80UL)); #line 256 "cc1.om" - v14 = *(u *)(v_d); + v14 = *(u *)((v_d) + (32UL)); #line 256 "cc1.om" v15 = ((u (*)())(v12))(v13, v14); #line 257 "cc1.om" @@ -33801,7 +33805,7 @@ b16: v20 = (u)my_fputs; #line 258 "cc1.om" v21 = *(u *)((v_c) + (80UL)); #line 258 "cc1.om" - v22 = *(u *)(v_v); + v22 = *(u *)((v_v) + (32UL)); #line 258 "cc1.om" v23 = ((u (*)())(v20))(v21, v22); #line 259 "cc1.om" @@ -33813,15 +33817,15 @@ b17: v24 = (u)my_fputs; #line 259 "cc1.om" v27 = ((u (*)())(v24))(v25, v26); #line 261 "cc1.om" -b5: *(u *)((v_edge) + (48UL)) = 1UL; +b5: *(u *)((v_edge) + (56UL)) = 1UL; #line 263 "cc1.om" v28 = (u)my_find; #line 263 "cc1.om" v29 = v_c; #line 263 "cc1.om" - v30 = *(u *)(v_v); + v30 = *(u *)((v_v) + (32UL)); #line 263 "cc1.om" - v31 = *(u *)(v_d); + v31 = *(u *)((v_d) + (32UL)); #line 263 "cc1.om" v32 = 1UL; #line 263 "cc1.om" @@ -33829,17 +33833,17 @@ b5: *(u *)((v_edge) + (48UL)) = 1UL; #line 263 "cc1.om" b19: v_edge = v33; #line 264 "cc1.om" - *(u *)((v_edge) + (56UL)) = 1UL; + *(u *)((v_edge) + (64UL)) = 1UL; #line 264 "cc1.om" goto b1; #line 267 "cc1.om" -b1: if (!(*(u *)((v_v) + (104UL)))) { goto b20; } +b1: if (!(*(u *)((v_v) + (112UL)))) { goto b20; } #line 268 "cc1.om" b21: return 0UL; #line 271 "cc1.om" -b20: *(u *)((v_v) + (104UL)) = 1UL; +b20: *(u *)((v_v) + (112UL)) = 1UL; #line 272 "cc1.om" - *(u *)((v_v) + (40UL)) = *(u *)((v_c) + (104UL)); + *(u *)((v_v) + (48UL)) = *(u *)((v_c) + (104UL)); #line 273 "cc1.om" *(u *)((v_c) + (104UL)) = v_v; #line 249 "cc1.om" @@ -34822,66 +34826,14 @@ u my_next_decl(u v_c, u v_d) { u v2 = 0; u v3 = 0; u v4 = 0; -#line 152 "decl.om" -b0: if (!(v_d)) { goto b5; } -#line 152 "decl.om" -b4: v2 = 0UL; -#line 152 "decl.om" - goto b6; -#line 152 "decl.om" -b6: if (!(v2)) { goto b1; } -#line 153 "decl.om" -b2: return 0UL; -#line 156 "decl.om" -b1: if (!(*(u *)((v_d) + (32UL)))) { goto b18; } -#line 157 "decl.om" -b8: v_d = *(u *)((v_d) + (32UL)); -#line 159 "decl.om" - goto b10; -#line 160 "decl.om" -b10: if (!(*(u *)((v_d) + (24UL)))) { goto b16; } -#line 160 "decl.om" -b15: v3 = 0UL; -#line 160 "decl.om" - goto b17; -#line 160 "decl.om" -b17: if (!(v3)) { goto b12; } -#line 161 "decl.om" -b13: return v_d; -#line 164 "decl.om" -b12: v_d = *(u *)((v_d) + (24UL)); -#line 164 "decl.om" - goto b10; -#line 160 "decl.om" -b16: v3 = 1UL; -#line 160 "decl.om" - goto b17; -#line 169 "decl.om" -b18: if (!(*(u *)((v_d) + (16UL)))) { goto b24; } -#line 169 "decl.om" -b23: v4 = 0UL; -#line 169 "decl.om" - goto b25; -#line 169 "decl.om" -b25: if (!(v4)) { goto b20; } -#line 170 "decl.om" -b21: return 0UL; -#line 173 "decl.om" -b20: if (!((u)(((s)(*(u *)((*(u *)((v_d) + (16UL))) + (24UL)))) == ((s)(v_d))))) { goto b26; } -#line 174 "decl.om" -b27: return *(u *)((v_d) + (16UL)); -#line 177 "decl.om" -b26: v_d = *(u *)((v_d) + (16UL)); -#line 177 "decl.om" - goto b18; -#line 169 "decl.om" -b24: v4 = 1UL; -#line 169 "decl.om" - goto b25; -#line 152 "decl.om" -b5: v2 = 1UL; -#line 152 "decl.om" - goto b6; +#line 137 "decl.om" +b0: v2 = (u)my_rb_next; +#line 137 "decl.om" + v3 = v_d; +#line 137 "decl.om" + v4 = ((u (*)())(v2))(v3); +#line 137 "decl.om" +b1: return v4; } u my_node_to_str(u v_kind) { #line 127 "node.om" @@ -35453,23 +35405,23 @@ u my_output_ir(u v_c, u v_d) { u v74 = 0; u v75 = 0; #line 1572 "ir.om" -b0: v_ic = *(u *)((v_d) + (120UL)); +b0: v_ic = *(u *)((v_d) + (128UL)); #line 1574 "ir.om" - *(u *)((*(u *)(v_ic)) + (24UL)) = *(u *)((*(u *)((v_d) + (88UL))) + (24UL)); + *(u *)((*(u *)(v_ic)) + (24UL)) = *(u *)((*(u *)((v_d) + (96UL))) + (24UL)); #line 1575 "ir.om" - *(u *)((*(u *)(v_ic)) + (32UL)) = *(u *)((*(u *)((v_d) + (88UL))) + (32UL)); + *(u *)((*(u *)(v_ic)) + (32UL)) = *(u *)((*(u *)((v_d) + (96UL))) + (32UL)); #line 1576 "ir.om" - *(u *)((*(u *)(v_ic)) + (40UL)) = *(u *)((*(u *)((v_d) + (88UL))) + (40UL)); + *(u *)((*(u *)(v_ic)) + (40UL)) = *(u *)((*(u *)((v_d) + (96UL))) + (40UL)); #line 1577 "ir.om" - *(u *)((*(u *)((v_ic) + (8UL))) + (88UL)) = *(u *)((*(u *)((v_d) + (88UL))) + (24UL)); + *(u *)((*(u *)((v_ic) + (8UL))) + (88UL)) = *(u *)((*(u *)((v_d) + (96UL))) + (24UL)); #line 1578 "ir.om" - *(u *)((*(u *)((v_ic) + (8UL))) + (96UL)) = *(u *)((*(u *)((v_d) + (88UL))) + (32UL)); + *(u *)((*(u *)((v_ic) + (8UL))) + (96UL)) = *(u *)((*(u *)((v_d) + (96UL))) + (32UL)); #line 1580 "ir.om" v3 = (u)my_fixup_label; #line 1580 "ir.om" v4 = *(u *)((v_c) + (48UL)); #line 1580 "ir.om" - v5 = *(u *)((v_d) + (80UL)); + v5 = *(u *)((v_d) + (88UL)); #line 1580 "ir.om" v6 = ((u (*)())(v3))(v4, v5); #line 1581 "ir.om" @@ -35477,15 +35429,15 @@ b1: v7 = (u)my_add_symbol; #line 1581 "ir.om" v8 = *(u *)((v_c) + (48UL)); #line 1581 "ir.om" - v9 = *(u *)(v_d); + v9 = *(u *)((v_d) + (32UL)); #line 1581 "ir.om" - v10 = *(u *)((v_d) + (80UL)); + v10 = *(u *)((v_d) + (88UL)); #line 1581 "ir.om" v11 = ((u (*)())(v7))(v8, v9, v10); #line 1583 "ir.om" b2: v12 = (u)my_strcmp; #line 1583 "ir.om" - v13 = *(u *)(v_d); + v13 = *(u *)((v_d) + (32UL)); #line 1583 "ir.om" v14 = (u)"_start"; #line 1583 "ir.om" @@ -35603,7 +35555,7 @@ b19: return 0UL; #line 1588 "ir.om" b5: v48 = (u)my_strcmp; #line 1588 "ir.om" - v49 = *(u *)(v_d); + v49 = *(u *)((v_d) + (32UL)); #line 1588 "ir.om" v50 = (u)"_kstart"; #line 1588 "ir.om" @@ -38190,13 +38142,13 @@ b18: v30 = (u)my_addfixup; #line 1930 "ir.om" v31 = *(u *)((v_ic) + (8UL)); #line 1930 "ir.om" - v32 = *(u *)((v_d) + (80UL)); + v32 = *(u *)((v_d) + (88UL)); #line 1930 "ir.om" v33 = ((u (*)())(v30))(v31, v32); #line 1919 "ir.om" b19: return 0UL; #line 1924 "ir.om" -b6: if (!(*(u *)((v_d) + (64UL)))) { goto b14; } +b6: if (!(*(u *)((v_d) + (72UL)))) { goto b14; } #line 1924 "ir.om" b13: v12 = 0UL; #line 1924 "ir.om" @@ -56375,7 +56327,7 @@ b36: v43 = (u)my_cdie; #line 154 "type.om" v46 = ((u (*)())(v43))(v44, v45); #line 157 "type.om" -b35: if (!((u)(((s)(*(u *)(*(u *)((v_st) + (152UL))))) == ((s)(17UL))))) { goto b52; } +b35: if (!((u)(((s)(*(u *)(*(u *)((v_st) + (160UL))))) == ((s)(17UL))))) { goto b52; } #line 158 "type.om" b51: v47 = (u)my_mktype_struct; #line 158 "type.om" @@ -56397,7 +56349,7 @@ b52: v51 = (u)my_mktype_union; #line 160 "type.om" b54: return v54; #line 153 "type.om" -b39: if (!(*(u *)((v_st) + (128UL)))) { goto b47; } +b39: if (!(*(u *)((v_st) + (136UL)))) { goto b47; } #line 153 "type.om" b46: v42 = 0UL; #line 153 "type.om" @@ -56681,6 +56633,405 @@ b0: v2 = (u)my_fputc; #line 280 "as.om" b1: return 0UL; } +u my_rb_first(u v_n) { + u v1 = 0; + u v2 = 0; +#line 146 "rb.om" +b0: if (!(v_n)) { goto b5; } +#line 146 "rb.om" +b4: v1 = 0UL; +#line 146 "rb.om" + goto b6; +#line 146 "rb.om" +b6: if (!(v1)) { goto b7; } +#line 147 "rb.om" +b2: return 0UL; +#line 151 "rb.om" +b7: if (!(*(u *)((v_n) + (16UL)))) { goto b13; } +#line 151 "rb.om" +b12: v2 = 0UL; +#line 151 "rb.om" + goto b14; +#line 151 "rb.om" +b14: if (!(v2)) { goto b9; } +#line 158 "rb.om" +b8: return v_n; +#line 155 "rb.om" +b9: v_n = *(u *)((v_n) + (16UL)); +#line 155 "rb.om" + goto b7; +#line 151 "rb.om" +b13: v2 = 1UL; +#line 151 "rb.om" + goto b14; +#line 146 "rb.om" +b5: v1 = 1UL; +#line 146 "rb.om" + goto b6; +} +u my_rb_link(u v_tree, u v_link, u v_parent, u v_n) { + u v_l = 0; + u v_r = 0; + u v_g = 0; + u v_p = 0; + u v8 = 0; + u v9 = 0; + u v10 = 0; + u v11 = 0; + u v12 = 0; + u v13 = 0; + u v14 = 0; + u v15 = 0; + u v16 = 0; + u v17 = 0; + u v18 = 0; + u v19 = 0; + u v20 = 0; + u v21 = 0; + u v22 = 0; + u v23 = 0; + u v24 = 0; + u v25 = 0; + u v26 = 0; + u v27 = 0; + u v28 = 0; + u v29 = 0; + u v30 = 0; + u v31 = 0; + u v32 = 0; + u v33 = 0; + u v34 = 0; + u v35 = 0; + u v36 = 0; + u v37 = 0; +#line 75 "rb.om" +b0: *(u *)(v_n) = 1UL; +#line 76 "rb.om" + *(u *)((v_n) + (8UL)) = v_parent; +#line 77 "rb.om" + *(u *)((v_n) + (16UL)) = 0UL; +#line 78 "rb.om" + *(u *)((v_n) + (24UL)) = 0UL; +#line 79 "rb.om" + *(u *)(v_link) = v_n; +#line 81 "rb.om" + goto b1; +#line 82 "rb.om" +b1: v_p = *(u *)((v_n) + (8UL)); +#line 83 "rb.om" + if (!(v_p)) { goto b7; } +#line 83 "rb.om" +b6: v8 = 0UL; +#line 83 "rb.om" + goto b8; +#line 83 "rb.om" +b8: if (!(v8)) { goto b3; } +#line 86 "rb.om" +b4: *(u *)(v_n) = 0UL; +#line 87 "rb.om" + return 0UL; +#line 90 "rb.om" +b3: if (!(*(u *)(v_p))) { goto b13; } +#line 90 "rb.om" +b12: v9 = 0UL; +#line 90 "rb.om" + goto b14; +#line 90 "rb.om" +b14: if (!(v9)) { goto b9; } +#line 93 "rb.om" +b10: return 0UL; +#line 96 "rb.om" +b9: v_g = *(u *)((v_p) + (8UL)); +#line 97 "rb.om" + if (!(v_g)) { goto b19; } +#line 97 "rb.om" +b18: v10 = 0UL; +#line 97 "rb.om" + goto b20; +#line 97 "rb.om" +b20: if (!(v10)) { goto b15; } +#line 99 "rb.om" +b16: *(u *)(v_p) = 0UL; +#line 100 "rb.om" + return 0UL; +#line 104 "rb.om" +b15: v_l = *(u *)((v_g) + (16UL)); +#line 105 "rb.om" + v_r = *(u *)((v_g) + (24UL)); +#line 106 "rb.om" + if (!(v_l)) { goto b25; } +#line 106 "rb.om" +b24: if (!(v_r)) { goto b29; } +#line 106 "rb.om" +b28: if (!(*(u *)(v_l))) { goto b33; } +#line 106 "rb.om" +b32: if (!(*(u *)(v_r))) { goto b33; } +#line 106 "rb.om" +b34: v13 = 1UL; +#line 106 "rb.om" + goto b35; +#line 106 "rb.om" +b35: if (!(v13)) { goto b29; } +#line 106 "rb.om" +b30: v12 = 1UL; +#line 106 "rb.om" + goto b31; +#line 106 "rb.om" +b31: if (!(v12)) { goto b25; } +#line 106 "rb.om" +b26: v11 = 1UL; +#line 106 "rb.om" + goto b27; +#line 106 "rb.om" +b27: if (!(v11)) { goto b21; } +#line 109 "rb.om" +b22: *(u *)(v_l) = 0UL; +#line 110 "rb.om" + *(u *)(v_r) = 0UL; +#line 111 "rb.om" + *(u *)(v_g) = 1UL; +#line 112 "rb.om" + v_n = v_g; +#line 113 "rb.om" + goto b1; +#line 117 "rb.om" +b21: if (!((u)(((s)(v_p)) == ((s)(*(u *)((v_g) + (16UL))))))) { goto b38; } +#line 118 "rb.om" +b37: if (!((u)(((s)(v_n)) == ((s)(*(u *)((v_p) + (16UL))))))) { goto b41; } +#line 119 "rb.om" +b40: *(u *)(v_n) = 0UL; +#line 120 "rb.om" + v14 = (u)my_rb_rotate_right; +#line 120 "rb.om" + v15 = v_tree; +#line 120 "rb.om" + v16 = v_p; +#line 120 "rb.om" + v17 = ((u (*)())(v14))(v15, v16); +#line 121 "rb.om" +b42: v_n = v_p; +#line 121 "rb.om" + goto b1; +#line 123 "rb.om" +b41: *(u *)(v_p) = 0UL; +#line 124 "rb.om" + v18 = (u)my_rb_rotate_left; +#line 124 "rb.om" + v19 = v_tree; +#line 124 "rb.om" + v20 = v_n; +#line 124 "rb.om" + v21 = ((u (*)())(v18))(v19, v20); +#line 125 "rb.om" +b43: v22 = (u)my_rb_rotate_right; +#line 125 "rb.om" + v23 = v_tree; +#line 125 "rb.om" + v24 = v_n; +#line 125 "rb.om" + v25 = ((u (*)())(v22))(v23, v24); +#line 125 "rb.om" + goto b1; +#line 128 "rb.om" +b38: if (!((u)(((s)(v_n)) == ((s)(*(u *)((v_p) + (16UL))))))) { goto b47; } +#line 129 "rb.om" +b46: *(u *)(v_p) = 0UL; +#line 130 "rb.om" + v26 = (u)my_rb_rotate_right; +#line 130 "rb.om" + v27 = v_tree; +#line 130 "rb.om" + v28 = v_n; +#line 130 "rb.om" + v29 = ((u (*)())(v26))(v27, v28); +#line 131 "rb.om" +b48: v30 = (u)my_rb_rotate_left; +#line 131 "rb.om" + v31 = v_tree; +#line 131 "rb.om" + v32 = v_n; +#line 131 "rb.om" + v33 = ((u (*)())(v30))(v31, v32); +#line 131 "rb.om" + goto b1; +#line 133 "rb.om" +b47: *(u *)(v_n) = 0UL; +#line 134 "rb.om" + v34 = (u)my_rb_rotate_left; +#line 134 "rb.om" + v35 = v_tree; +#line 134 "rb.om" + v36 = v_p; +#line 134 "rb.om" + v37 = ((u (*)())(v34))(v35, v36); +#line 135 "rb.om" +b50: v_n = v_p; +#line 135 "rb.om" + goto b1; +#line 106 "rb.om" +b25: v11 = 0UL; +#line 106 "rb.om" + goto b27; +#line 106 "rb.om" +b29: v12 = 0UL; +#line 106 "rb.om" + goto b31; +#line 106 "rb.om" +b33: v13 = 0UL; +#line 106 "rb.om" + goto b35; +#line 97 "rb.om" +b19: v10 = 1UL; +#line 97 "rb.om" + goto b20; +#line 90 "rb.om" +b13: v9 = 1UL; +#line 90 "rb.om" + goto b14; +#line 83 "rb.om" +b7: v8 = 1UL; +#line 83 "rb.om" + goto b8; +} +u my_rb_next(u v_n) { + u v1 = 0; + u v2 = 0; + u v3 = 0; + u v4 = 0; + u v5 = 0; +#line 178 "rb.om" +b0: if (!(v_n)) { goto b5; } +#line 178 "rb.om" +b4: v1 = 0UL; +#line 178 "rb.om" + goto b6; +#line 178 "rb.om" +b6: if (!(v1)) { goto b1; } +#line 179 "rb.om" +b2: return 0UL; +#line 182 "rb.om" +b1: if (!(*(u *)((v_n) + (24UL)))) { goto b11; } +#line 183 "rb.om" +b8: v2 = (u)my_rb_first; +#line 183 "rb.om" + v3 = *(u *)((v_n) + (24UL)); +#line 183 "rb.om" + v4 = ((u (*)())(v2))(v3); +#line 183 "rb.om" +b10: return v4; +#line 187 "rb.om" +b11: if (!(*(u *)((v_n) + (8UL)))) { goto b17; } +#line 187 "rb.om" +b16: v5 = 0UL; +#line 187 "rb.om" + goto b18; +#line 187 "rb.om" +b18: if (!(v5)) { goto b13; } +#line 188 "rb.om" +b14: return 0UL; +#line 191 "rb.om" +b13: if (!((u)(((s)(*(u *)((*(u *)((v_n) + (8UL))) + (16UL)))) == ((s)(v_n))))) { goto b19; } +#line 192 "rb.om" +b20: return *(u *)((v_n) + (8UL)); +#line 195 "rb.om" +b19: v_n = *(u *)((v_n) + (8UL)); +#line 195 "rb.om" + goto b11; +#line 187 "rb.om" +b17: v5 = 1UL; +#line 187 "rb.om" + goto b18; +#line 178 "rb.om" +b5: v1 = 1UL; +#line 178 "rb.om" + goto b6; +} +u my_rb_rotate_left(u v_tree, u v_n) { + u v_g = 0; + u v_p = 0; + u v_s = 0; +#line 14 "rb.om" +b0: v_s = *(u *)((v_n) + (16UL)); +#line 15 "rb.om" + v_p = *(u *)((v_n) + (8UL)); +#line 16 "rb.om" + v_g = *(u *)((v_p) + (8UL)); +#line 18 "rb.om" + *(u *)((v_n) + (16UL)) = v_p; +#line 19 "rb.om" + *(u *)((v_p) + (8UL)) = v_n; +#line 21 "rb.om" + *(u *)((v_p) + (24UL)) = v_s; +#line 22 "rb.om" + if (!(v_s)) { goto b1; } +#line 23 "rb.om" +b2: *(u *)((v_s) + (8UL)) = v_p; +#line 23 "rb.om" + goto b1; +#line 26 "rb.om" +b1: *(u *)((v_n) + (8UL)) = v_g; +#line 27 "rb.om" + if (!(v_g)) { goto b6; } +#line 28 "rb.om" +b5: if (!((u)(((s)(*(u *)((v_g) + (16UL)))) == ((s)(v_p))))) { goto b9; } +#line 29 "rb.om" +b8: *(u *)((v_g) + (16UL)) = v_n; +#line 29 "rb.om" + goto b4; +#line 8 "rb.om" +b4: return 0UL; +#line 31 "rb.om" +b9: *(u *)((v_g) + (24UL)) = v_n; +#line 31 "rb.om" + goto b4; +#line 34 "rb.om" +b6: *(u *)(v_tree) = v_n; +#line 34 "rb.om" + goto b4; +} +u my_rb_rotate_right(u v_tree, u v_n) { + u v_g = 0; + u v_p = 0; + u v_s = 0; +#line 44 "rb.om" +b0: v_s = *(u *)((v_n) + (24UL)); +#line 45 "rb.om" + v_p = *(u *)((v_n) + (8UL)); +#line 46 "rb.om" + v_g = *(u *)((v_p) + (8UL)); +#line 48 "rb.om" + *(u *)((v_n) + (24UL)) = v_p; +#line 49 "rb.om" + *(u *)((v_p) + (8UL)) = v_n; +#line 51 "rb.om" + *(u *)((v_p) + (16UL)) = v_s; +#line 52 "rb.om" + if (!(v_s)) { goto b1; } +#line 53 "rb.om" +b2: *(u *)((v_s) + (8UL)) = v_p; +#line 53 "rb.om" + goto b1; +#line 56 "rb.om" +b1: *(u *)((v_n) + (8UL)) = v_g; +#line 57 "rb.om" + if (!(v_g)) { goto b6; } +#line 58 "rb.om" +b5: if (!((u)(((s)(*(u *)((v_g) + (16UL)))) == ((s)(v_p))))) { goto b9; } +#line 59 "rb.om" +b8: *(u *)((v_g) + (16UL)) = v_n; +#line 59 "rb.om" + goto b4; +#line 38 "rb.om" +b4: return 0UL; +#line 61 "rb.om" +b9: *(u *)((v_g) + (24UL)) = v_n; +#line 61 "rb.om" + goto b4; +#line 64 "rb.om" +b6: *(u *)(v_tree) = v_n; +#line 64 "rb.om" + goto b4; +} u my_read(u v_fd, u v_buf, u v_n) { u v3 = 0; u v4 = 0; @@ -64247,7 +64598,7 @@ b12: v3 = (u)my_layout_struct; #line 35 "type.om" v6 = ((u (*)())(v3))(v4, v5); #line 36 "type.om" -b14: return *(u *)((*(u *)((v_t) + (8UL))) + (136UL)); +b14: return *(u *)((*(u *)((v_t) + (8UL))) + (144UL)); #line 37 "type.om" b13: if (!((u)(((s)(v_kind)) == ((s)(8UL))))) { goto b16; } #line 38 "type.om" @@ -64259,7 +64610,7 @@ b15: v7 = (u)my_layout_union; #line 38 "type.om" v10 = ((u (*)())(v7))(v8, v9); #line 39 "type.om" -b17: return *(u *)((*(u *)((v_t) + (8UL))) + (136UL)); +b17: return *(u *)((*(u *)((v_t) + (8UL))) + (144UL)); #line 41 "type.om" b16: v11 = (u)my_cdie; #line 41 "type.om" @@ -65522,7 +65873,7 @@ b78: v_v = v91; #line 735 "cc1.om" if (!(v_v)) { goto b83; } #line 735 "cc1.om" -b82: if (!(*(u *)((v_v) + (200UL)))) { goto b83; } +b82: if (!(*(u *)((v_v) + (208UL)))) { goto b83; } #line 735 "cc1.om" b84: v92 = 1UL; #line 735 "cc1.om" @@ -65542,7 +65893,7 @@ b79: v97 = (u)my_find; #line 739 "cc1.om" v98 = v_c; #line 739 "cc1.om" - v99 = *(u *)(v_d); + v99 = *(u *)((v_d) + (32UL)); #line 739 "cc1.om" v100 = *(u *)((*(u *)((v_n) + (8UL))) + (56UL)); #line 739 "cc1.om" @@ -65554,7 +65905,7 @@ b87: v_v = v102; #line 740 "cc1.om" if (!(v_v)) { goto b92; } #line 740 "cc1.om" -b91: if (!(*(u *)((v_v) + (224UL)))) { goto b92; } +b91: if (!(*(u *)((v_v) + (232UL)))) { goto b92; } #line 740 "cc1.om" b93: v103 = 1UL; #line 740 "cc1.om" @@ -65562,7 +65913,7 @@ b93: v103 = 1UL; #line 740 "cc1.om" b94: if (!(v103)) { goto b90; } #line 741 "cc1.om" -b89: *(u *)((*(u *)((v_n) + (8UL))) + (64UL)) = *(u *)((v_v) + (232UL)); +b89: *(u *)((*(u *)((v_n) + (8UL))) + (64UL)) = *(u *)((v_v) + (240UL)); #line 741 "cc1.om" goto b75; #line 759 "cc1.om" @@ -65656,11 +66007,11 @@ b103: v118 = (u)my_cdie; #line 745 "cc1.om" v121 = ((u (*)())(v118))(v119, v120); #line 747 "cc1.om" -b102: *(u *)((*(u *)((v_n) + (8UL))) + (64UL)) = *(u *)((v_v) + (72UL)); +b102: *(u *)((*(u *)((v_n) + (8UL))) + (64UL)) = *(u *)((v_v) + (80UL)); #line 747 "cc1.om" goto b75; #line 744 "cc1.om" -b106: if (!(*(u *)((v_v) + (64UL)))) { goto b114; } +b106: if (!(*(u *)((v_v) + (72UL)))) { goto b114; } #line 744 "cc1.om" b113: v117 = 0UL; #line 744 "cc1.om" @@ -65720,11 +66071,11 @@ b119: v131 = (u)my_cdie; #line 751 "cc1.om" v134 = ((u (*)())(v131))(v132, v133); #line 753 "cc1.om" -b118: *(u *)((*(u *)((v_n) + (8UL))) + (64UL)) = *(u *)((v_v) + (72UL)); +b118: *(u *)((*(u *)((v_n) + (8UL))) + (64UL)) = *(u *)((v_v) + (80UL)); #line 753 "cc1.om" goto b75; #line 750 "cc1.om" -b122: if (!(*(u *)((v_v) + (64UL)))) { goto b130; } +b122: if (!(*(u *)((v_v) + (72UL)))) { goto b130; } #line 750 "cc1.om" b129: v130 = 0UL; #line 750 "cc1.om" @@ -65816,7 +66167,7 @@ b149: v166 = (u)my_find; #line 778 "cc1.om" v167 = v_c; #line 778 "cc1.om" - v168 = *(u *)(*(u *)((*(u *)((*(u *)((*(u *)((v_n) + (8UL))) + (64UL))) + (16UL))) + (8UL))); + v168 = *(u *)((*(u *)((*(u *)((*(u *)((*(u *)((v_n) + (8UL))) + (64UL))) + (16UL))) + (8UL))) + (32UL)); #line 778 "cc1.om" v169 = *(u *)((*(u *)((v_n) + (16UL))) + (56UL)); #line 778 "cc1.om" @@ -65850,11 +66201,11 @@ b168: v186 = (u)my_cdie; #line 788 "cc1.om" v189 = ((u (*)())(v186))(v187, v188); #line 791 "cc1.om" -b167: *(u *)((v_n) + (64UL)) = *(u *)((v_v) + (176UL)); +b167: *(u *)((v_n) + (64UL)) = *(u *)((v_v) + (184UL)); #line 791 "cc1.om" goto b1; #line 787 "cc1.om" -b171: if (!(*(u *)((v_v) + (168UL)))) { goto b179; } +b171: if (!(*(u *)((v_v) + (176UL)))) { goto b179; } #line 787 "cc1.om" b178: v185 = 0UL; #line 787 "cc1.om" @@ -65904,7 +66255,7 @@ b158: v177 = (u)my_find; #line 784 "cc1.om" v178 = v_c; #line 784 "cc1.om" - v179 = *(u *)(*(u *)((*(u *)((*(u *)((v_n) + (8UL))) + (64UL))) + (8UL))); + v179 = *(u *)((*(u *)((*(u *)((*(u *)((v_n) + (8UL))) + (64UL))) + (8UL))) + (32UL)); #line 784 "cc1.om" v180 = *(u *)((*(u *)((v_n) + (16UL))) + (56UL)); #line 784 "cc1.om" @@ -65938,7 +66289,7 @@ b184: v_v = v195; #line 794 "cc1.om" if (!(v_v)) { goto b189; } #line 794 "cc1.om" -b188: if (!(*(u *)((v_v) + (200UL)))) { goto b189; } +b188: if (!(*(u *)((v_v) + (208UL)))) { goto b189; } #line 794 "cc1.om" b190: v196 = 1UL; #line 794 "cc1.om" @@ -65962,7 +66313,7 @@ b185: v201 = (u)my_find; #line 799 "cc1.om" v202 = v_c; #line 799 "cc1.om" - v203 = *(u *)(v_d); + v203 = *(u *)((v_d) + (32UL)); #line 799 "cc1.om" v204 = *(u *)((v_n) + (56UL)); #line 799 "cc1.om" @@ -65974,7 +66325,7 @@ b193: v_v = v206; #line 800 "cc1.om" if (!(v_v)) { goto b198; } #line 800 "cc1.om" -b197: if (!(*(u *)((v_v) + (224UL)))) { goto b198; } +b197: if (!(*(u *)((v_v) + (232UL)))) { goto b198; } #line 800 "cc1.om" b199: v207 = 1UL; #line 800 "cc1.om" @@ -65982,7 +66333,7 @@ b199: v207 = 1UL; #line 800 "cc1.om" b200: if (!(v207)) { goto b194; } #line 801 "cc1.om" -b195: *(u *)((v_n) + (64UL)) = *(u *)((v_v) + (232UL)); +b195: *(u *)((v_n) + (64UL)) = *(u *)((v_v) + (240UL)); #line 802 "cc1.om" return 0UL; #line 805 "cc1.om" @@ -66002,7 +66353,7 @@ b201: v_v = v213; #line 806 "cc1.om" if (!(v_v)) { goto b206; } #line 806 "cc1.om" -b205: if (!(*(u *)((v_v) + (64UL)))) { goto b206; } +b205: if (!(*(u *)((v_v) + (72UL)))) { goto b206; } #line 806 "cc1.om" b207: v214 = 1UL; #line 806 "cc1.om" @@ -66010,7 +66361,7 @@ b207: v214 = 1UL; #line 806 "cc1.om" b208: if (!(v214)) { goto b202; } #line 807 "cc1.om" -b203: *(u *)((v_n) + (64UL)) = *(u *)((v_v) + (72UL)); +b203: *(u *)((v_n) + (64UL)) = *(u *)((v_v) + (80UL)); #line 808 "cc1.om" return 0UL; #line 811 "cc1.om" @@ -68234,7 +68585,7 @@ u my_typecheck_func(u v_c, u v_d) { u v6 = 0; u v7 = 0; #line 1264 "cc1.om" -b0: if (!(*(u *)((v_d) + (88UL)))) { goto b5; } +b0: if (!(*(u *)((v_d) + (96UL)))) { goto b5; } #line 1264 "cc1.om" b4: v2 = 0UL; #line 1264 "cc1.om" @@ -68250,7 +68601,7 @@ b1: v3 = (u)my_typecheck_stmt; #line 1268 "cc1.om" v5 = v_d; #line 1268 "cc1.om" - v6 = *(u *)((*(u *)((v_d) + (88UL))) + (16UL)); + v6 = *(u *)((*(u *)((v_d) + (96UL))) + (16UL)); #line 1268 "cc1.om" v7 = ((u (*)())(v3))(v4, v5, v6); #line 1263 "cc1.om" @@ -68458,7 +68809,7 @@ b40: if (!((u)(((s)(v_kind)) == ((s)(29UL))))) { goto b42; } #line 1238 "cc1.om" b41: if (!(*(u *)((v_n) + (8UL)))) { goto b45; } #line 1239 "cc1.om" -b44: if (!((u)(((s)(*(u *)(*(u *)((*(u *)((v_d) + (72UL))) + (16UL))))) == ((s)(1UL))))) { goto b46; } +b44: if (!((u)(((s)(*(u *)(*(u *)((*(u *)((v_d) + (80UL))) + (16UL))))) == ((s)(1UL))))) { goto b46; } #line 1240 "cc1.om" b47: v29 = (u)my_cdie; #line 1240 "cc1.om" @@ -68494,13 +68845,13 @@ b51: v43 = (u)my_unify; #line 1244 "cc1.om" v45 = *(u *)((*(u *)((v_n) + (8UL))) + (64UL)); #line 1244 "cc1.om" - v46 = *(u *)((*(u *)((v_d) + (72UL))) + (16UL)); + v46 = *(u *)((*(u *)((v_d) + (80UL))) + (16UL)); #line 1244 "cc1.om" v47 = ((u (*)())(v43))(v44, v45, v46); #line 1244 "cc1.om" goto b7; #line 1246 "cc1.om" -b45: if (!((u)(((s)(*(u *)(*(u *)((*(u *)((v_d) + (72UL))) + (16UL))))) != ((s)(1UL))))) { goto b7; } +b45: if (!((u)(((s)(*(u *)(*(u *)((*(u *)((v_d) + (80UL))) + (16UL))))) != ((s)(1UL))))) { goto b7; } #line 1247 "cc1.om" b54: v48 = (u)my_cdie; #line 1247 "cc1.om" @@ -68518,7 +68869,7 @@ b57: v52 = (u)my_find; #line 1251 "cc1.om" v53 = v_c; #line 1251 "cc1.om" - v54 = *(u *)(v_d); + v54 = *(u *)((v_d) + (32UL)); #line 1251 "cc1.om" v55 = *(u *)((*(u *)((v_n) + (8UL))) + (56UL)); #line 1251 "cc1.om" @@ -68536,7 +68887,7 @@ b60: v58 = (u)my_find; #line 1253 "cc1.om" v59 = v_c; #line 1253 "cc1.om" - v60 = *(u *)(v_d); + v60 = *(u *)((v_d) + (32UL)); #line 1253 "cc1.om" v61 = *(u *)((*(u *)((v_n) + (8UL))) + (56UL)); #line 1253 "cc1.om" @@ -68570,7 +68921,7 @@ b64: v67 = (u)my_cdie; #line 1255 "cc1.om" goto b7; #line 1254 "cc1.om" -b67: if (!(*(u *)((v_v) + (256UL)))) { goto b75; } +b67: if (!(*(u *)((v_v) + (264UL)))) { goto b75; } #line 1254 "cc1.om" b74: v66 = 0UL; #line 1254 "cc1.om" diff --git a/decl.om b/decl.om @@ -1,9 +1,8 @@ struct decl { + node: rbnode; + name: *byte; member_name: *byte; - p: *decl; - l: *decl; - r: *decl; used_next: *decl; used_forward: int; @@ -43,15 +42,15 @@ struct decl { } func find(c: *compiler, name: *byte, member_name: *byte, make: int): *decl { - var p: *decl; + var link: **rbnode; + var p: *rbnode; var d: *decl; - var link: **decl; var dir: int; p = nil; - link = &c.decls; + link = (&c.decls) as **rbnode; loop { - d = *link; + d = (*link) as *decl; if (!d) { break; } @@ -71,11 +70,11 @@ func find(c: *compiler, name: *byte, member_name: *byte, make: int): *decl { } if (dir < 0) { - p = d; - link = &d.l; + link = &d.node.left; + p = &d.node; } else if (dir > 0) { - p = d; - link = &d.r; + link = &d.node.right; + p = &d.node; } else { return d; } @@ -91,9 +90,7 @@ func find(c: *compiler, name: *byte, member_name: *byte, make: int): *decl { d.name = name; d.member_name = member_name; - d.p = p; - d.l = nil; - d.r = nil; + rb_link((&c.decls) as **rbnode, link, p, &d.node); d.used_next = nil; @@ -125,56 +122,17 @@ func find(c: *compiler, name: *byte, member_name: *byte, make: int): *decl { d.goto_defined = 0; d.goto_label = mklabel(c.s); - *link = d; - return d; } // Find the first declaration func first_decl(c: *compiler): *decl { - var d: *decl; - - d = c.decls; - if (!d) { + if !c.decls { return nil; } - - loop { - if (!d.l) { - return d; - } - - d = d.l; - } + return rb_first(&c.decls.node) as *decl; } func next_decl(c: *compiler, d: *decl): *decl { - if (!d) { - return nil; - } - - if (d.r) { - d = d.r; - - loop { - if (!d.l) { - return d; - } - - d = d.l; - } - } - - loop { - if (!d.p) { - return nil; - } - - if (d.p.l == d) { - return d.p; - } - - d = d.p; - } + return rb_next(&d.node) as *decl; } - diff --git a/rb.om b/rb.om @@ -0,0 +1,215 @@ +struct rbnode { + red: int; + parent: *rbnode; + left: *rbnode; + right: *rbnode; +} + +func rb_rotate_left(tree: **rbnode, n: *rbnode) { + var gg: *rbnode; + var g: *rbnode; + var p: *rbnode; + var s: *rbnode; + + s = n.left; + p = n.parent; + g = p.parent; + + n.left = p; + p.parent = n; + + p.right = s; + if s { + s.parent = p; + } + + n.parent = g; + if g { + if g.left == p { + g.left = n; + } else { + g.right = n; + } + } else { + *tree = n; + } +} + +func rb_rotate_right(tree: **rbnode, n: *rbnode) { + var gg: *rbnode; + var g: *rbnode; + var p: *rbnode; + var s: *rbnode; + + s = n.right; + p = n.parent; + g = p.parent; + + n.right = p; + p.parent = n; + + p.left = s; + if s { + s.parent = p; + } + + n.parent = g; + if g { + if g.left == p { + g.left = n; + } else { + g.right = n; + } + } else { + *tree = n; + } +} + +func rb_link(tree: **rbnode, link: **rbnode, parent: *rbnode, n: *rbnode) { + var l: *rbnode; + var r: *rbnode; + var g: *rbnode; + var p: *rbnode; + + // Insert a red node to not disturb the black balance. + n.red = 1; + n.parent = parent; + n.left = nil; + n.right = nil; + *link = n; + + loop { + p = n.parent; + if !p { + // If we have reached the root make sure it's black. + // At this point no more red-red violations are possible. + n.red = 0; + return; + } + + if !p.red { + // We reached a node that's black. + // There is no red-red violation and our transformations did not disturb balance. + return; + } + + g = p.parent; + if !g { + // Parent is the root and is red, just color it black. + p.red = 0; + return; + } + + // Now, n is red and p is red. This is a red-red violation. + l = g.left; + r = g.right; + if l && r && l.red && r.red { + // Both parent and it's sibling are red. + // We can bubble up to the grandparent. + l.red = 0; + r.red = 0; + g.red = 1; + n = g; + continue; + } + + // Otherwise, we require rotations to resolve the violation. + if p == g.left { + if n == p.left { + n.red = 0; + rb_rotate_right(tree, p); + n = p; + } else { + p.red = 0; + rb_rotate_left(tree, n); + rb_rotate_right(tree, n); + } + } else { + if n == p.left { + p.red = 0; + rb_rotate_right(tree, n); + rb_rotate_left(tree, n); + } else { + n.red = 0; + rb_rotate_left(tree, p); + n = p; + } + } + } +} + +func rb_first(n: *rbnode): *rbnode { + if !n { + return nil; + } + + loop { + if !n.left { + break; + } + + n = n.left; + } + + return n; +} + +func rb_last(n: *rbnode): *rbnode { + if !n { + return nil; + } + + loop { + if !n.right { + break; + } + + n = n.right; + } + + return n; +} + +func rb_next(n: *rbnode): *rbnode { + if !n { + return nil; + } + + if n.right { + return rb_first(n.right); + } + + loop { + if !n.parent { + return nil; + } + + if n.parent.left == n { + return n.parent; + } + + n = n.parent; + } +} + +func rb_prev(n: *rbnode): *rbnode { + if !n { + return nil; + } + + if n.left { + return rb_last(n.left); + } + + loop { + if !n.parent { + return nil; + } + + if n.parent.right == n { + return n.parent; + } + + n = n.parent; + } +}