compiler/ lib/ scripts/ seed/ sublime/ test/ support/ tests/ assign.qualified.static/ fn.unsafe.callbacks/ ref.qualified.static/ wildcard.import.owner/ abi.sizes.rad 3.5 KiB addfn.rad 52 B addfn.ril 76 B aggregate.return.rad 4.1 KiB arith.assignment.rad 631 B arith.basic.rad 191 B arith.modulo.rad 111 B arith.subword.rad 3.9 KiB arith.subword.ril 4.3 KiB arith.sum.rad 192 B arith.w64.rad 4.1 KiB arith.w64.ril 5.2 KiB array.aggregate.stride.rad 773 B array.aggregate.stride.ril 1.1 KiB array.assign.rad 225 B array.assign.ril 526 B array.bounds.check.rad 321 B array.fn.assign.rad 265 B array.index.assign.rad 422 B array.index.rad 280 B array.index.ril 496 B array.len.const.rad 348 B array.len.const.ril 200 B array.length.rad 285 B array.literal.rad 136 B array.literal.ril 329 B array.math.rad 1.2 KiB array.nested.assign.rad 327 B array.nested.rad 325 B array.nested.ril 922 B array.record.elements.rad 1.7 KiB array.repeat.edge.rad 548 B array.repeat.rad 828 B array.repeat.ril 3.0 KiB array.return.rad 345 B array.slice.empty.rad 123 B array.slice.full.rad 124 B array.slice.full.ril 168 B array.slice.gen.end.rad 155 B array.slice.gen.index.rad 168 B array.slice.gen.open.rad 154 B array.slice.gen.start.end.rad 156 B array.slice.gen.start.rad 155 B array.slice.openend.rad 148 B array.slice.openend.ril 351 B array.slice.openstart.rad 148 B array.slice.openstart.ril 289 B array.slice.rad 816 B as.precedence.rad 226 B asm.basic.text.program.ras 187 B asm.branch.comparisons.ras 648 B asm.call.return.flow.ras 203 B asm.compare.set.logic.ras 611 B asm.csr.system.instructions.ras 221 B asm.data.directives.ras 439 B asm.data.symbol.fixup.ras 227 B asm.directive.boundary.values.ras 809 B asm.fence.ras 76 B asm.global.scoped.symbols.ras 207 B asm.instruction.matrix.alu.ras 566 B asm.instruction.matrix.mem.control.ras 355 B asm.instruction.matrix.system.ras 115 B asm.label.fixups.ras 235 B asm.li.expressions.ras 212 B asm.link.rad 103 B asm.link.ras 85 B asm.load.store.widths.ras 711 B asm.mul.div.rem.ras 769 B asm.rodata.prefix.rad 226 B asm.rodata.prefix.ras 163 B asm.scoped.symbols.la.ras 147 B asm.scoped.symbols.tail.ras 157 B asm.section.switching.ras 173 B asm.space.constant.expressions.ras 358 B asm.string.directive.lists.ras 326 B asm.word.dword.constants.ras 372 B asm.word.shift.ops.ras 870 B assert.basic.rad 402 B assert.basic.ril 624 B assert.fail.rad 138 B assert.false.rad 140 B assert.message.rad 123 B assert.message.ril 141 B assert.true.rad 115 B assign.loop.rad 213 B assign.loop.ril 242 B assign.multi.var.rad 194 B assign.multi.var.ril 73 B assign.mutable.rad 6.3 KiB assign.param.rad 150 B assign.param.ril 96 B assign.qualified.static.rad 464 B assign.rad 156 B assign.self.ref.rad 161 B assign.self.ref.ril 92 B assign.sequential.rad 163 B assign.sequential.ril 52 B assign.shadow.mutable.rad 489 B assign.use.intermediate.rad 191 B assign.use.intermediate.ril 99 B average.rad 189 B average.ril 378 B binding.storage.rad 514 B binding.storage.ril 878 B binop.arith.rad 479 B binop.arith.ril 389 B binop.bitwise.rad 1.2 KiB binop.bitwise.ril 1.2 KiB binop.cmp.rad 441 B binop.logical.rad 216 B binop.logical.ril 373 B binop.shift.rad 197 B binop.shift.ril 149 B binop.unsigned.rad 317 B binop.unsigned.ril 236 B block.finalization.flow.rad 1.9 KiB bool.comparison.array.rad 688 B bool.comparison.nested.gen.rad 1.0 KiB bool.comparison.opt.rad 905 B bool.comparison.record.gen.rad 1.0 KiB bool.comparison.record.rad 1.1 KiB bool.comparison.slice.gen.rad 157 B bool.comparison.slice.rad 4.4 KiB bool.comparison.slice.record.gen.rad 2.0 KiB bool.comparison.slice.union.gen.rad 2.6 KiB bool.comparison.union.ctor.rad 711 B bool.comparison.union.gen.rad 1.2 KiB bool.comparison.union.record.gen.rad 1.5 KiB bool.comparison.union.simple.gen.rad 302 B bool.operators.complex.rad 384 B bool.operators.rad 831 B bool.short.circuit.order.rad 1013 B bool.short.circuit.rad 2.3 KiB bool.simple.rad 209 B bool.values.rad 787 B borrow.fields.calls.rad 1.3 KiB borrow.fields.calls.ril 841 B borrow.fields.pattern.rad 596 B borrow.fields.pattern.ril 279 B builtin.alignof.rad 698 B builtin.alignof.ril 287 B builtin.memory.fence.rad 108 B builtin.size.align.rad 1.2 KiB builtin.sizeof.rad 656 B builtin.sizeof.ril 282 B builtin.sliceof.invalid.cap.rad 271 B builtin.sliceof.mut.rad 674 B builtin.sliceof.rad 542 B byte.load.store.rad 380 B byte.load.store.ril 730 B call.aggregate.arg.snapshot.rad 520 B call.arg.clobber.rad 732 B call.basic.rad 256 B call.checked.selection.rad 1.1 KiB call.clobber.rad 509 B call.table.order.rad 1.8 KiB call.tests.rad 764 B call.tests.ril 603 B cast.basic.rad 855 B cast.basic.ril 594 B cast.narrow.rad 583 B cast.narrow.ril 557 B cast.same.size.rad 1.0 KiB cast.same.size.ril 1.1 KiB casting.numbers.rad 1.5 KiB char.literal.rad 180 B cmp.rel.rad 733 B cmp.rel.ril 467 B cmp.unsigned.rad 733 B cmp.unsigned.ril 467 B coercion.implicit.rad 917 B coercion.implicit.ril 1.1 KiB compare.literal.first.u64.rad 301 B compound.assign.field.rad 318 B compound.assign.index.once.rad 431 B compound.assign.rad 1.2 KiB compound.assign.ril 2.0 KiB cond.assign.merge.basic.rad 221 B cond.assign.merge.basic.ril 172 B cond.assign.merge.rad 214 B cond.assign.merge.ril 169 B cond.assign.rad 766 B cond.elseif.rad 204 B cond.elseif.ril 181 B cond.expr.aggregate.rad 1.2 KiB cond.expr.literal-first.rad 326 B cond.expr.rad 1.9 KiB cond.expr.ril 3.5 KiB cond.for.else.break.rad 349 B cond.for.indexed.rad 257 B cond.for.rad 184 B cond.for.range.indexed.rad 549 B cond.for.range.rad 190 B cond.for.unsigned.range.rad 671 B cond.forever.break.continue.rad 201 B cond.forever.break.rad 255 B cond.fused.rad 941 B cond.if.case.rad 2.2 KiB cond.if.else.min.rad 158 B cond.if.else.rad 244 B cond.if.elseif.rad 443 B cond.if.noelse.rad 139 B cond.if.rad 880 B cond.ifelse.rad 104 B cond.ifelse.ril 117 B cond.iflet.case.rad 170 B cond.iflet.case.ril 114 B cond.iflet.guard.rad 182 B cond.iflet.guard.ril 165 B cond.iflet.mut.rad 195 B cond.iflet.mut.ril 217 B cond.iflet.noelse.rad 156 B cond.iflet.noelse.ril 225 B cond.iflet.optional.rad 184 B cond.iflet.optional.ril 118 B cond.iflet.optional.value.rad 194 B cond.iflet.optional.value.ril 206 B cond.letelse.case.rad 146 B cond.letelse.case.ril 149 B cond.letelse.guard.rad 160 B cond.letelse.guard.ril 200 B cond.letelse.mut.rad 185 B cond.letelse.mut.ril 252 B cond.letelse.optional.rad 160 B cond.letelse.optional.ril 153 B cond.match.fallthrough.rad 388 B cond.match.guard.rad 1.4 KiB cond.match.guard.regalloc.rad 1.4 KiB cond.nested.rad 138 B cond.nested.ril 185 B cond.simple.rad 86 B cond.simple.ril 118 B cond.while.else.break.rad 305 B cond.while.rad 138 B const-cast-wrap.rad 450 B const-expr-array-size.rad 379 B const-expr-cast.rad 1.1 KiB const-expr-literal.rad 673 B const-expr-refs.rad 752 B const.array.copy.mutate.rad 397 B const.array.ident.rad 247 B const.array.ident.ril 146 B const.array.rad 217 B const.array.record.ident.rad 396 B const.array.record.ident.ril 353 B const.array.repeat.record.rad 225 B const.array.repeat.record.ril 399 B const.array.repeat.string.slice.rad 303 B const.array.repeat.string.slice.ril 1.1 KiB const.array.ril 392 B const.array.strings.slice.rad 274 B const.array.strings.slice.ril 579 B const.backing.names.rad 1.2 KiB const.basic.rad 349 B const.char.rad 180 B const.fn.array.rad 670 B const.i32.shift.right.rad 244 B const.local.duplicate.rad 474 B const.local.duplicate.ril 787 B const.negative.rad 331 B const.negative.ril 338 B const.record.array.rad 1.2 KiB const.record.array.simple.rad 559 B const.record.ctor.rad 194 B const.record.ctor.ril 415 B const.record.fn.rad 362 B const.record.mutcopy.rad 466 B const.record.mutcopy.ril 445 B const.record.nested.rad 408 B const.record.nested.ril 474 B const.record.packed.rad 275 B const.record.packed.ril 284 B const.record.padded.rad 275 B const.record.padded.ril 318 B const.record.rad 206 B const.record.ril 221 B const.record.union.rad 608 B const.record.union.ril 673 B const.scalar.rad 105 B const.scalar.ril 82 B const.shift.negative.count.rad 305 B const.slice.of.slices.rad 238 B const.slice.of.slices.ril 956 B const.slice.param.rad 336 B const.string.rad 114 B const.string.ril 309 B const.string.scoped.names.rad 263 B const.string.scoped.names.ril 904 B const.u32.shift.mask.rad 249 B const.u64.compare.rad 188 B const.u64.divide.rad 174 B const.union.payload.ctor.rad 373 B const.union.payload.ctor.ril 507 B const.union.payload.fn.array.rad 1.1 KiB const.union.payload.record.array.rad 1.5 KiB const.union.record.literal.rad 383 B const.union.record.literal.ril 506 B container.length.paths.rad 1.2 KiB data.array.rad 803 B data.bool.rad 237 B data.i16.rad 288 B data.i32.rad 308 B data.i8.rad 275 B data.optional.nil.rad 866 B data.optional.nil.ril 2.0 KiB data.optional.value.rad 2.3 KiB data.optional.value.ril 5.8 KiB data.record.rad 597 B data.simple.rad 454 B data.u16.rad 244 B data.u32.rad 264 B data.u8.rad 232 B data.union.rad 931 B debug.tag.rad 563 B div.u8.immediate.wrap.rad 213 B ecall.i64.rad 529 B edge.cases.2.rad 361 B edge.cases.3.rad 606 B edge.cases.4.rad 1.3 KiB edge.cases.5.rad 1.1 KiB edge.cases.6.rad 2.7 KiB edge.cases.7.addr.bug.rad 246 B edge.cases.8.bug.rad 553 B edge.cases.rad 247 B element.pointer.widths.rad 2.0 KiB error.basic.rad 180 B error.catch.rad 1.6 KiB error.catch.return.rad 409 B error.catch.return.ril 634 B error.division.zero.rad 164 B error.modulo.zero.rad 162 B error.multi.basic.rad 711 B error.multi.catch.capacity.rad 3.0 KiB error.multi.catch.rad 819 B error.multi.catch.typed.binding.rad 830 B error.multi.catch.typed.catchall.rad 1.0 KiB error.multi.catch.typed.rad 1.1 KiB error.multi.propagate.multi.rad 1000 B error.multi.propagate.rad 864 B error.multi.try.optional.rad 534 B error.slice.bounds.rad 233 B error.throw.coercion.rad 318 B error.try.bang.success.rad 376 B error.try.catch.binding.rad 2.1 KiB error.try.optional.rad 1.9 KiB error.try.rad 4.1 KiB expression.result.coercion.rad 1.6 KiB extern.inferred.rad 70 B externfn.rad 32 B externfn.ril 37 B fibonacci.rad 122 B fibonacci.ril 247 B field.aggregate.rad 837 B field.aggregate.ril 842 B fn.block.scope.rad 508 B fn.callback.nested.rad 1.6 KiB fn.default.rad 146 B fn.local.rad 155 B fn.parameter.table.rad 1.4 KiB fn.ptr.assign.rad 277 B fn.ptr.assign.ril 143 B fn.ptr.call.rad 258 B fn.ptr.call.ril 183 B fn.ptr.param.rad 356 B fn.ptr.param.ril 282 B fn.recursion.2.rad 239 B fn.unsafe.callbacks.rad 737 B fn.void.rad 165 B for.else.continue.rad 1.1 KiB frame.large.rad 614 B if-let-mut.rad 1.2 KiB iflet.shadow.else.rad 408 B iflet.shadow.leak.rad 317 B index.eval.order.rad 368 B index.u8.rad 616 B int.default.i64.rad 1.1 KiB integer.bitwise.basic.rad 708 B integer.overflow.rad 1.8 KiB intrinsic.ebreak.rad 90 B intrinsic.ebreak.ril 76 B intrinsic.ecall.rad 168 B intrinsic.ecall.ril 131 B large.blit.store.rad 2.2 KiB let.copy.semantics.rad 883 B let.copy.semantics.ril 939 B let.guard.rad 1.9 KiB let.placeholder.rad 291 B let.placeholder.ril 220 B linear.let-else.rad 402 B linear.ownership.rad 395 B linear.ownership.ril 353 B linear.reference.rad 663 B linear.reference.ril 623 B linear.scratch.slots.rad 3.1 KiB linear.unsafe.rad 531 B linear.unsafe.ril 286 B literal.char.rad 209 B literal.char.ril 127 B literal.slice.backing.rad 893 B literal.slice.bytes.rad 124 B literal.slice.bytes.ril 263 B literal.slice.dedup.rad 199 B literal.slice.dedup.ril 434 B literal.slice.empty.rad 100 B literal.slice.empty.ril 157 B literal.slice.multi.rad 170 B literal.slice.multi.ril 496 B literal.slice.rad 123 B literal.slice.record.rad 217 B literal.slice.record.ril 694 B literal.slice.ril 272 B literal.string.dedup.rad 179 B literal.string.dedup.ril 422 B literal.string.empty.rad 93 B literal.string.empty.ril 248 B literal.string.fns.rad 180 B literal.string.fns.ril 470 B literal.string.multi.rad 153 B literal.string.multi.ril 480 B literal.string.rad 108 B literal.string.ril 247 B literal.w64.rad 1.7 KiB load.u32.high.rad 1.8 KiB loc.addr.offset.bug.rad 455 B loc.addr.opt.to.opt.rad 472 B loc.addr.optional.assign.rad 447 B loc.addr.record.assign.rad 499 B local.multi.rad 85 B local.multi.ril 67 B local.mut.rad 79 B local.mut.ril 45 B local.simple.rad 60 B local.simple.ril 45 B loop.break.rad 156 B loop.break.ril 228 B loop.complex.flow.rad 1.0 KiB loop.context.rad 678 B loop.continue.rad 219 B loop.continue.ril 327 B loop.for.array.rad 223 B loop.for.array.ril 315 B loop.for.break.bound.rad 161 B loop.for.break.bound.ril 264 B loop.for.continue.rad 403 B loop.for.continue.ril 741 B loop.for.indexed.rad 149 B loop.for.indexed.ril 285 B loop.for.placeholder.rad 321 B loop.for.placeholder.ril 457 B loop.for.rad 120 B loop.for.ril 220 B loop.for.slice.rad 216 B loop.for.slice.ril 362 B loop.for.unsigned.range.rad 317 B loop.for.unsigned.range.ril 481 B loop.infinite.rad 41 B loop.infinite.ril 78 B loop.mutable.rad 375 B loop.mutable.ril 617 B loop.nested.break.rad 392 B loop.nested.break.ril 461 B loop.nested.continue.rad 418 B loop.nested.continue.ril 581 B loop.return.rad 141 B loop.return.ril 179 B loop.sealblock.rad 942 B loop.while.false.noparams.rad 175 B loop.while.false.noparams.ril 171 B loop.while.nested.shortcircuit.rad 872 B loop.while.nested.shortcircuit.ril 589 B loop.while.rad 164 B loop.while.ril 241 B loop.whilelet.case.rad 259 B loop.whilelet.case.ril 204 B loop.whilelet.guard.rad 265 B loop.whilelet.guard.ril 256 B loop.whilelet.optional.rad 212 B loop.whilelet.optional.ril 217 B loop.whilelet.union.rad 382 B loop.whilelet.union.ril 382 B lower.const.record.ident.rad 291 B lower.const.record.ident.ril 387 B lower.private.union.const.rad 259 B lower.private.union.const.ril 317 B lower.record.scalar.record.const.rad 244 B lower.record.scalar.record.const.ril 321 B lower.variable.scopes.rad 963 B lowering.scratch.context.rad 5.3 KiB lowering.scratch.context.ril 5.6 KiB match.array.rad 3.5 KiB match.borrow.scope.rad 708 B match.catchall.metadata.rad 1.1 KiB match.char.rad 1.6 KiB match.guard.order.rad 1.1 KiB match.more.rad 647 B match.more.ril 683 B match.multi.seal.rad 1008 B match.multi.seal.ril 924 B match.multi.survive.rad 1.7 KiB match.mutref.push.rad 1.1 KiB match.mutref.union.rad 693 B match.nested.call.rad 1.7 KiB match.nested.deep.rad 2.2 KiB match.nested.deref.rad 3.8 KiB match.nested.guard.rad 1.6 KiB match.nested.iflet.guard.rad 1.6 KiB match.nested.iflet.rad 1.4 KiB match.nested.iflet.ril 2.3 KiB match.nested.letelse.rad 840 B match.nested.letelse.union.rad 1.4 KiB match.nested.literal.rad 3.1 KiB match.nested.multi.rad 2.4 KiB match.nested.pattern.rad 5.3 KiB match.nested.pattern.ril 8.3 KiB match.nested.record.rad 2.1 KiB match.nested.record.ril 3.5 KiB match.nested.union.rad 2.3 KiB match.nested.union.ril 4.5 KiB match.nested.whilelet.rad 2.4 KiB match.optional.aggregate.rad 222 B match.optional.aggregate.ril 578 B match.optional.rad 183 B match.optional.ref.rad 212 B match.optional.ref.ril 232 B match.optional.ril 164 B match.optional.wildcard.rad 282 B match.payload.modes.rad 1.2 KiB match.pointer.bindings.rad 678 B match.pointer.bindings.ril 1.3 KiB match.record.pattern.rad 331 B match.record.pattern.ril 287 B match.simple.rad 367 B match.simple.ril 347 B match.string.rad 1.8 KiB match.switch.capacity.rad 5.1 KiB match.switch.rad 217 B match.switch.ril 187 B match.value.copy.rad 2.1 KiB match.void.then.or.rad 1.6 KiB memzero.result.bug.rad 835 B memzero.union.bug.rad 618 B method.basic.rad 590 B method.chain.rad 574 B method.multiple.rad 945 B method.ptr.rad 717 B method.pub.rad 247 B method.return.rad 605 B method.throws.rad 849 B method.union.rad 430 B method.with.trait.rad 1.2 KiB mixedtypes.rad 79 B mixedtypes.ril 82 B multi.throw.basic.rad 284 B multi.throw.basic.ril 526 B multi.throw.catch.typed.rad 456 B multi.throw.catch.typed.ril 1015 B multi.throw.propagate.rad 347 B multi.throw.propagate.ril 873 B multiplefns.rad 110 B multiplefns.ril 146 B mutref.call.result.rad 350 B mutref.loop.bug.rad 1.9 KiB mutref.loop.rad 324 B mutref.loop.ril 368 B mutref.scalar.rad 232 B mutref.scalar.ril 324 B nil.cmp.rad 622 B nil.cmp.ril 423 B noparams.rad 38 B noparams.ril 43 B opt.array.hint.rad 951 B opt.assignment.bug.rad 1.3 KiB opt.bug.test.rad 1.4 KiB opt.if.let.complex.rad 6.2 KiB opt.if.let.guard.rad 809 B opt.if.let.rad 956 B opt.nil.check.rad 1.6 KiB opt.ptr.return.nil.rad 85 B opt.ptr.return.nil.ril 51 B opt.record.eq.rad 866 B opt.record.eq.rev.rad 313 B opt.record.eq.rev.ril 635 B opt.record.eq.ril 3.4 KiB opt.record.rad 679 B opt.return.array.rad 289 B opt.return.nested.rad 803 B opt.return.nil.rad 82 B opt.return.nil.ril 114 B opt.return.record.rad 350 B opt.return.value.rad 91 B opt.return.value.ril 138 B opt.slice.npo.rad 3.0 KiB opt.slice.npo.ril 6.9 KiB opt.type.rad 227 B opt.while.let.complex.rad 412 B optional.aggregate.eq.rad 292 B optional.aggregate.eq.ril 695 B optional.eq.rad 131 B optional.eq.ril 253 B optional.ptr.eq.rad 313 B optional.ptr.eq.ril 309 B optional.record.value.match.rad 606 B optional.union.eq.rad 1.5 KiB panic.basic.rad 70 B panic.basic.ril 46 B panic.rad 111 B parameter.receiver.names.rad 1.4 KiB parser.call.record.argument.rad 209 B parser.condition.array.record.rad 232 B parser.condition.subscript.record.rad 278 B pattern.guard.flow.rad 2.0 KiB placeholder.basic.rad 148 B placeholder.comprehensive.rad 581 B pointer.arithmetic.unsafe.rad 417 B pointer.borrow.unsafe.rad 1.7 KiB pointer.cast.unsafe.rad 439 B pointer.copy.edge.case.rad 1.4 KiB pointer.move.record.rad 551 B pointer.slice.index.rad 304 B pointer.slice.store.rad 1009 B pointer.stack.borrow.rad 907 B pointer.stack.unsafe.rad 483 B pointerfn.rad 50 B pointerfn.ril 54 B prog.ackermann.rad 5.0 KiB prog.bignum.rad 9.7 KiB prog.binsearch.rad 2.5 KiB prog.bubblesort.rad 2.0 KiB prog.cordic.rad 7.0 KiB prog.crc32.rad 2.8 KiB prog.dijkstra.rad 8.1 KiB prog.eval.rad 6.3 KiB prog.hanoi.rad 3.8 KiB prog.huffman.rad 9.9 KiB prog.hybridsort.rad 3.1 KiB prog.linkedlist.rad 6.0 KiB prog.lzw.rad 7.2 KiB prog.matmul.rad 3.0 KiB prog.mersenne.rad 5.5 KiB prog.nqueens.rad 3.5 KiB prog.rbtree.rad 8.8 KiB prog.regex.rad 10.8 KiB prog.sha256.rad 7.2 KiB prog.sieve.rad 2.8 KiB prog.symtab.rad 10.3 KiB prog.tokenizer.rad 14.5 KiB prog.vm.rad 18.3 KiB ptr.addressof.field.rad 138 B ptr.addressof.field.ril 78 B ptr.addressof.local.rad 503 B ptr.addressof.local.ril 280 B ptr.addressof.rad 133 B ptr.addressof.ril 213 B ptr.assign.rad 155 B ptr.assign.ril 130 B ptr.deref.rad 685 B ptr.deref.record.rad 288 B ptr.deref.record.ril 190 B ptr.deref.ril 1.1 KiB ptr.eq.rad 1.1 KiB ptr.mutate.rad 256 B ptr.opaque.rad 1.6 KiB ptr.subscript.assign.rad 133 B ptr.subscript.assign.ril 288 B range.arithmetic.rad 775 B record.access.rad 306 B record.alignment.rad 200 B record.array.elements.rad 1.7 KiB record.assign.blit.rad 121 B record.assign.blit.ril 158 B record.copy.rad 2.1 KiB record.ctor.tuple.rad 75 B record.ctor.tuple.ril 187 B record.empty.eq.rad 278 B record.empty.eq.ril 226 B record.eq.rad 229 B record.eq.ril 214 B record.field.assign.rad 217 B record.field.assign.ril 308 B record.literal.labeled.rad 109 B record.literal.labeled.ril 127 B record.mixed.layout.rad 122 B record.mixed.layout.ril 149 B record.nested.calls.2.rad 622 B record.nested.calls.3.rad 755 B record.nested.eq.rad 258 B record.nested.eq.ril 522 B record.nested.lit.rad 182 B record.nested.lit.ril 188 B record.param.lit.rad 380 B record.ptr.access.rad 262 B record.ptr.access.ril 198 B record.ptr.mutate.rad 249 B record.shorthand.rad 1.5 KiB record.unlabeled.deref.rad 1.4 KiB record.unlabeled.rad 419 B ref.if.bug.rad 527 B ref.immut.loop.bug.rad 674 B ref.local.bindings.rad 1.5 KiB ref.local.bindings.ril 1.2 KiB ref.local.fields.rad 1.8 KiB ref.local.never.rad 269 B ref.local.never.ril 121 B ref.local.scopes.rad 1.1 KiB ref.local.scopes.ril 896 B ref.local.slice.release.rad 261 B ref.local.slice.release.ril 753 B ref.mut.ptr.rad 291 B ref.qualified.static.rad 307 B reference.array.repeat.rad 135 B reference.array.repeat.ril 260 B regalloc.block.entry.rad 885 B regalloc.callee.save.rad 1.5 KiB regalloc.spill.reuse.rad 488 B regions.body.scope.rad 276 B regions.body.scope.ril 455 B regions.borrow.calls.rad 769 B regions.borrow.calls.ril 1004 B regions.borrow.control.rad 633 B regions.borrow.control.ril 961 B regions.borrow.erasure.rad 213 B regions.borrow.erasure.ril 265 B regions.borrow.headers.rad 213 B regions.borrow.headers.ril 425 B regions.borrow.local.rad 243 B regions.borrow.local.ril 311 B regions.borrow.siblings.rad 153 B regions.borrow.siblings.ril 79 B regions.borrow.valid.rad 716 B regions.borrow.valid.ril 841 B regions.call.scratch.rad 996 B regions.calls.callback.rad 265 B regions.calls.callback.ril 250 B regions.calls.inferred.rad 711 B regions.calls.inferred.ril 954 B regions.calls.nil.rad 982 B regions.calls.nil.ril 1.3 KiB regions.calls.ownership.rad 571 B regions.calls.ownership.ril 826 B regions.calls.parents.rad 246 B regions.calls.parents.ril 190 B regions.calls.raw.rad 352 B regions.calls.raw.ril 457 B regions.calls.recursive.rad 404 B regions.calls.recursive.ril 498 B regions.cell.graph.rad 1.2 KiB regions.cell.graph.ril 2.2 KiB regions.cell.pointer.rad 3.1 KiB regions.cell.pointer.ril 7.9 KiB regions.cell.recursive.rad 783 B regions.cell.recursive.ril 1.7 KiB regions.compiler.bitset.rad 7.1 KiB regions.compiler.bitset.ril 16.6 KiB regions.compiler.regmap.rad 1.3 KiB regions.compiler.regmap.ril 3.8 KiB regions.compiler.symbol.rad 1.1 KiB regions.compiler.symbol.ril 4.8 KiB regions.compiler.writer.rad 1.4 KiB regions.compiler.writer.ril 3.5 KiB regions.constant.optional.rad 604 B regions.constant.optional.ril 1.3 KiB regions.copy.binding.rad 1.7 KiB regions.copy.binding.ril 2.1 KiB regions.for.metadata.rad 1.2 KiB regions.header.order.rad 1.3 KiB regions.loan.scratch.rad 3.5 KiB regions.loans.control.rad 1.8 KiB regions.loans.control.ril 3.0 KiB regions.methods.rad 1.2 KiB regions.nominal.cache.rad 2.9 KiB regions.nominal.rad 1.5 KiB regions.nominal.ril 2.3 KiB regions.owner.freeze.rad 328 B regions.owner.freeze.ril 337 B regions.owner.lifetime.rad 1.2 KiB regions.owner.lifetime.ril 693 B regions.ownership.move.rad 144 B regions.ownership.move.ril 62 B regions.parameters.rad 228 B regions.parameters.ril 421 B regions.session.allocate.rad 2.4 KiB regions.session.allocate.ril 14.4 KiB regions.session.allocator.rad 1.2 KiB regions.session.context.rad 2.0 KiB regions.session.context.ril 2.8 KiB regions.session.scope.rad 728 B regions.session.scope.ril 1.6 KiB regions.shared.owner.rad 1.1 KiB regions.shared.owner.ril 1.6 KiB regions.slice.metadata.rad 776 B regions.storage.rad 2.3 KiB regions.storage.ril 4.2 KiB reserve.loop.rad 421 B reserve.loop.ril 473 B result.void.success.rad 711 B return.lit.rad 45 B return.lit.ril 50 B return.never.catch.rad 757 B return.never.flow.rad 619 B return.never.flow.ril 570 B return.never.rad 337 B return.never.ras 139 B return.param.rad 48 B return.param.ril 54 B rv64.u32.compare.rad 2.1 KiB set.keyword.rad 448 B simplefn.rad 45 B simplefn.ril 51 B slice.alloc.loop.rad 849 B slice.append.growth.rad 1.9 KiB slice.append.rad 4.3 KiB slice.append.ril 18.7 KiB slice.assign.mismatch.rad 220 B slice.assign.rad 1.4 KiB slice.basic.rad 763 B slice.basic.ril 818 B slice.cap.rad 999 B slice.construct.unsafe.rad 432 B slice.delete.rad 1012 B slice.delete.ril 4.8 KiB slice.empty.suffix.rad 593 B slice.eq.rad 126 B slice.eq.ril 209 B slice.header.unsafe.rad 593 B slice.index.rad 104 B slice.index.ril 278 B slice.mutable.rad 297 B slice.mutable.ril 1.5 KiB slice.of.rad 560 B slice.ptr.checked.bounds.rad 227 B slice.ptr.unsafe.rad 627 B slice.range.bounds.check.rad 299 B slice.range.dynamic.rad 877 B slice.range.order.check.rad 298 B slice.range.rad 676 B slice.range.ril 1.8 KiB slice.runtime.i32.rad 279 B slice.runtime.i32.ril 725 B slice.runtime.literal.rad 271 B slice.runtime.literal.ril 455 B slice.subslice.rad 1.5 KiB spill.blockarg.clobber.rad 3.6 KiB spill.loop.rad 1.6 KiB ssa.argument.growth.rad 2.2 KiB ssa.block.locals.rad 1.4 KiB ssa.block.storage.rad 2.2 KiB ssa.cache.values.rad 1.6 KiB ssa.instruction.storage.rad 1.9 KiB ssa.lookup.paths.rad 1.1 KiB ssa.predecessor.storage.rad 2.2 KiB stack.local.corrupt.rad 335 B start.default.rad 62 B start.default.start.ras 29 B start.exit.rad 54 B start.exit.start.ras 53 B static.array.mutate.rad 427 B static.assign.rad 131 B static.assign.ril 244 B static.basic.rad 347 B static.fn.array.rad 628 B static.local.decl.rad 201 B static.local.decl.ril 420 B static.local.names.rad 516 B static.local.names.ril 1.0 KiB static.optional.nil.rad 1.0 KiB static.record.array.rad 532 B static.scalar.rad 109 B static.scalar.ril 135 B static.slice.index.assign.rad 450 B static.slice.offset.rad 723 B static.zero.bss.rad 1.1 KiB string.basic.rad 164 B string.escape.rad 364 B string.index.rad 131 B switch.blockargs.clobber.rad 1.4 KiB symbol.name.registration.rad 1.1 KiB trait.aggregate.ret.rad 1.7 KiB trait.array.optional.rad 1.8 KiB trait.basic.rad 632 B trait.control.flow.rad 1.2 KiB trait.dispatch.rad 333 B trait.dispatch.ril 469 B trait.fn.param.rad 1.8 KiB trait.multiple.methods.rad 1.3 KiB trait.multiple.traits.rad 1.3 KiB trait.multiple.types.rad 1.4 KiB trait.object.rad 408 B trait.object.ril 496 B trait.supertrait.forward.rad 1.3 KiB trait.supertrait.rad 2.7 KiB trait.supertrait.ril 3.9 KiB trait.throws.rad 1.1 KiB trait.writer.rad 2.8 KiB trivial.phi.rad 1.1 KiB trivial.phi.ril 512 B try.basic.rad 397 B try.basic.ril 879 B try.catch.rad 345 B try.catch.ril 837 B try.dispatch.results.rad 1.8 KiB try.optional.rad 369 B try.optional.ril 760 B try.panic.rad 357 B try.panic.ril 639 B type.unify.rad 4.6 KiB undefined.aggregate.rad 165 B undefined.aggregate.ril 84 B undefined.primitive.rad 122 B undefined.primitive.ril 48 B undefined.rad 459 B undefined.record.field.rad 1.6 KiB undefined.record.field.ril 751 B undefined.unsafe.rad 824 B union-tag.rad 967 B union.bitfield.rad 1.2 KiB union.ctor.rad 564 B union.ctor.ril 505 B union.discriminant.cast.rad 395 B union.edge.case.2.rad 700 B union.edge.case.3.rad 674 B union.eq.rad 807 B union.eq.ril 1.4 KiB union.eq.void.ctor.rad 384 B union.eq.void.ctor.ril 131 B union.eq.void.rad 184 B union.eq.void.ril 75 B union.equality.capacity.rad 12.6 KiB union.match.bind.rad 265 B union.match.bind.ril 238 B union.match.ref.rad 1.1 KiB union.match.ref.ril 1.2 KiB union.match.tag.rad 870 B union.match.tag.ril 820 B union.mixed.assign.rad 1012 B union.payload.mutref.rad 1.5 KiB union.payload.rad 601 B union.payload.record.eq.rad 304 B union.payload.record.eq.ril 984 B union.record.forward.rad 1.3 KiB union.record.literal.rad 450 B union.record.literal.ril 391 B union.tag.values.rad 1.4 KiB union.variant.access.rad 743 B union.variant.access.ril 686 B union.void.match.rad 424 B union.void.rad 845 B unop.rad 699 B unop.ril 506 B unsafe.block.bounds.rad 268 B unsafe.block.rad 784 B unsafe.static.rad 523 B unsigned.compare.rad 1.9 KiB var.align.rad 1.0 KiB var.infer.rad 574 B var.shadow.rad 244 B var.shadow.ril 145 B variable.slots.scopes.rad 2.0 KiB void.throw.rad 276 B void.throw.ril 707 B voidfn.rad 18 B voidfn.ril 43 B wildcard.import.owner.rad 199 B command 5.2 KiB driver 3.3 KiB package-golden 1.6 KiB run 3.1 KiB runner.rad 10.5 KiB vim/ .gitignore 336 B .gitsigners 112 B CONTRIBUTING 2.1 KiB LICENSE 1.1 KiB Makefile 5.4 KiB README 2.5 KiB STYLE 2.5 KiB std.lib 1.5 KiB std.lib.test 662 B
test/tests/regions.session.allocate.ril 14.4 KiB raw
1
data mut $"regions.session.allocate::regions.session.allocate::main$nominal$DATA" align 1 {
2
    w8 0 * 256;
3
}
4
5
data $"regions.session.allocate::main$literal$0" align 1 {
6
    str "value";
7
}
8
9
fn w64 $"regions.session.allocate::create"(w64 %0, w64 %1, w32 %2) {
10
  @entry0
11
    load w64 %3 %1 0;
12
    load w64 %4 %1 8;
13
    load w64 %5 %4 0;
14
    reserve %6 16 8;
15
    call w64 %7 %5(%6, %3, 4, 4);
16
    load w64 %8 %7 0;
17
    reserve %9 8 8;
18
    br.ne w32 %8 0 @err2 @ok1;
19
  @ok1
20
    load w64 %10 %7 8;
21
    store w32 %2 %10 0;
22
    load w64 %11 %7 8;
23
    store w64 %11 %9 0;
24
    jmp @merge3;
25
  @err2
26
    reserve %12 16 8;
27
    store w64 %8 %12 0;
28
    add w64 %13 %7 8;
29
    add w64 %14 %12 8;
30
    blit %14 %13 1;
31
    blit %0 %12 16;
32
    ret %0;
33
  @merge3
34
    load w64 %15 %9 0;
35
    reserve %16 16 8;
36
    store w64 0 %16 0;
37
    store w64 %15 %16 8;
38
    blit %0 %16 16;
39
    ret %0;
40
}
41
42
fn w64 $"regions.session.allocate::initializer"(w64 %0, w64 %1) {
43
  @entry0
44
    store w32 42 %1 0;
45
    reserve %2 12 8;
46
    store w64 1 %2 0;
47
    store w8 0 %2 8;
48
    blit %0 %2 12;
49
    ret %0;
50
}
51
52
fn w64 $"regions.session.allocate::failedInitializer"(w64 %0, w64 %1, w64 %2) {
53
  @entry0
54
    load w64 %3 %1 0;
55
    load w64 %4 %1 8;
56
    load w64 %5 %4 0;
57
    reserve %6 12 8;
58
    call w64 %7 $"regions.session.allocate::initializer"(%6, %2);
59
    load w64 %8 %7 0;
60
    reserve %9 4 4;
61
    br.ne w32 %8 0 @err2 @ok1;
62
  @ok1
63
    load w32 %10 %7 8;
64
    store w32 %10 %9 0;
65
    jmp @merge3;
66
  @err2
67
    reserve %11 16 8;
68
    store w64 %8 %11 0;
69
    add w64 %12 %7 8;
70
    add w64 %13 %11 8;
71
    blit %13 %12 1;
72
    blit %0 %11 16;
73
    ret %0;
74
  @merge3
75
    load w32 %14 %9 0;
76
    reserve %15 16 8;
77
    call w64 %16 %5(%15, %3, 4, 4);
78
    load w64 %17 %16 0;
79
    reserve %18 8 8;
80
    br.ne w32 %17 0 @err5 @ok4;
81
  @ok4
82
    load w64 %19 %16 8;
83
    store w32 %14 %19 0;
84
    load w64 %20 %16 8;
85
    store w64 %20 %18 0;
86
    jmp @merge6;
87
  @err5
88
    reserve %21 16 8;
89
    store w64 %17 %21 0;
90
    add w64 %22 %16 8;
91
    add w64 %23 %21 8;
92
    blit %23 %22 1;
93
    blit %0 %21 16;
94
    ret %0;
95
  @merge6
96
    load w64 %24 %18 0;
97
    reserve %25 16 8;
98
    store w64 0 %25 0;
99
    store w64 %24 %25 8;
100
    blit %0 %25 16;
101
    ret %0;
102
}
103
104
fn w64 $"regions.session.allocate::failures"(w64 %0) {
105
  @entry0
106
    call w32 %1 $"std::lang::alloc::used"(%0);
107
    reserve %2 4 4;
108
    store w32 0 %2 0;
109
    reserve %3 16 8;
110
    store w64 %0 %3 0;
111
    store w64 $"std::lang::alloc::vtable::Arena::Alloc" %3 8;
112
    reserve %4 16 8;
113
    call w64 %5 $"regions.session.allocate::failedInitializer"(%4, %3, %2);
114
    load w64 %6 %5 0;
115
    reserve %7 8 8;
116
    br.ne w32 %6 0 @err2 @ok1;
117
  @ok1
118
    load w64 %8 %5 8;
119
    store w64 %8 %7 0;
120
    jmp @merge3;
121
  @err2
122
    switch %6 (1 @catch4) @unreachable5;
123
  @merge3
124
    load w64 %11 %7 0;
125
    load w64 %13 %3 0;
126
    load w64 %14 %3 8;
127
    load w64 %15 %14 8;
128
    reserve %16 24 8;
129
    call w64 %17 %15(%16, %13, 8, 8, 4294967295);
130
    load w64 %18 %17 0;
131
    reserve %19 16 8;
132
    br.ne w32 %18 0 @err9 @ok8;
133
  @catch4
134
    load w8 %9 %5 8;
135
    load w32 %10 %2 0;
136
    br.eq w32 %10 42 @assert.ok7 @assert.fail6;
137
  @unreachable5
138
    unreachable;
139
  @assert.fail6
140
    unreachable;
141
  @assert.ok7
142
    jmp @merge3;
143
  @ok8
144
    load w64 %20 %17 8;
145
    jmp @fill10(0);
146
  @err9
147
    reserve %26 16 8;
148
    store w64 0 %26 0;
149
    store w32 0 %26 8;
150
    store w32 0 %26 12;
151
    blit %19 %26 16;
152
    jmp @merge13;
153
  @fill10(w32 %21)
154
    br.ult w32 %21 4294967295 @fill11 @fill12;
155
  @fill11
156
    mul w64 %22 %21 8;
157
    add w64 %23 %20 %22;
158
    store w64 1 %23 0;
159
    add w32 %24 %21 1;
160
    jmp @fill10(%24);
161
  @fill12
162
    add w64 %25 %17 8;
163
    blit %19 %25 16;
164
    jmp @merge13;
165
  @merge13
166
    reserve %27 16 8;
167
    blit %27 %19 16;
168
    load w64 %28 %27 0;
169
    br.ne w32 %28 0 @then14 @else15;
170
  @then14
171
    unreachable;
172
  @else15
173
    jmp @merge16;
174
  @merge16
175
    load w64 %31 %3 0;
176
    load w64 %32 %3 8;
177
    load w64 %33 %32 8;
178
    zext w32 %34 1;
179
    reserve %35 24 8;
180
    call w64 %36 %33(%35, %31, 4, 4, 256);
181
    load w64 %37 %36 0;
182
    reserve %38 16 8;
183
    br.ne w32 %37 0 @err18 @ok17;
184
  @ok17
185
    load w64 %39 %36 8;
186
    jmp @fill19(0);
187
  @err18
188
    switch %37 (1 @catch23) @unreachable24;
189
  @fill19(w32 %40)
190
    br.ult w32 %40 256 @fill20 @fill21;
191
  @fill20
192
    mul w64 %41 %40 4;
193
    add w64 %42 %39 %41;
194
    store w32 %34 %42 0;
195
    add w32 %43 %40 1;
196
    jmp @fill19(%43);
197
  @fill21
198
    add w64 %44 %36 8;
199
    blit %38 %44 16;
200
    jmp @merge22;
201
  @merge22
202
    call w32 %55 $"std::lang::alloc::used"(%0);
203
    br.eq w32 %55 %1 @assert.ok28 @assert.fail27;
204
  @catch23
205
    load w8 %45 %36 8;
206
    load w32 %49 %2 0;
207
    br.eq w32 %49 42 @assert.ok26 @assert.fail25;
208
  @unreachable24
209
    unreachable;
210
  @assert.fail25
211
    unreachable;
212
  @assert.ok26
213
    jmp @merge22;
214
  @assert.fail27
215
    unreachable;
216
  @assert.ok28
217
    load w32 %63 %2 0;
218
    br.eq w32 %63 42 @assert.ok30 @assert.fail29;
219
  @assert.fail29
220
    unreachable;
221
  @assert.ok30
222
    ret;
223
}
224
225
fn w32 $"regions.session.allocate::main"() {
226
  @entry0
227
    copy %0 $"regions.session.allocate::regions.session.allocate::main$nominal$DATA";
228
    add w64 %1 %0 1;
229
    sub w32 %2 256 1;
230
    reserve %3 16 8;
231
    store w64 %1 %3 0;
232
    store w32 %2 %3 8;
233
    store w32 %2 %3 12;
234
    reserve %4 24 8;
235
    call w64 %5 $"std::lang::alloc::new"(%4, %3);
236
    call w64 $"regions.session.allocate::failures"(%5);
237
    reserve %6 16 8;
238
    store w64 %5 %6 0;
239
    store w64 $"std::lang::alloc::vtable::Arena::Alloc" %6 8;
240
    load w64 %7 %6 0;
241
    load w64 %8 %6 8;
242
    load w64 %9 %8 0;
243
    reserve %10 4 4;
244
    store w32 7 %10 0;
245
    reserve %11 16 8;
246
    call w64 %12 %9(%11, %7, 4, 4);
247
    load w64 %13 %12 0;
248
    reserve %14 8 8;
249
    br.ne w32 %13 0 @err2 @ok1;
250
  @ok1
251
    load w64 %15 %12 8;
252
    blit %15 %10 4;
253
    load w64 %16 %12 8;
254
    store w64 %16 %14 0;
255
    jmp @merge3;
256
  @err2
257
    unreachable;
258
  @merge3
259
    load w64 %17 %14 0;
260
    load w32 %18 %17 0;
261
    br.eq w32 %18 7 @assert.ok5 @assert.fail4;
262
  @assert.fail4
263
    unreachable;
264
  @assert.ok5
265
    load w64 %19 %6 0;
266
    load w64 %20 %6 8;
267
    load w64 %21 %20 0;
268
    copy %22 $"regions.session.allocate::main$literal$0";
269
    reserve %23 16 8;
270
    store w64 %22 %23 0;
271
    store w32 5 %23 8;
272
    store w32 5 %23 12;
273
    reserve %24 16 8;
274
    call w64 %25 %21(%24, %19, 16, 8);
275
    load w64 %26 %25 0;
276
    reserve %27 8 8;
277
    br.ne w32 %26 0 @err7 @ok6;
278
  @ok6
279
    load w64 %28 %25 8;
280
    blit %28 %23 16;
281
    load w64 %29 %25 8;
282
    store w64 %29 %27 0;
283
    jmp @merge8;
284
  @err7
285
    unreachable;
286
  @merge8
287
    load w64 %30 %27 0;
288
    load w32 %31 %30 8;
289
    br.eq w32 %31 5 @assert.ok10 @assert.fail9;
290
  @assert.fail9
291
    unreachable;
292
  @assert.ok10
293
    reserve %32 16 8;
294
    call w64 %33 $"regions.session.allocate::create"(%32, %6, 20);
295
    load w64 %34 %33 0;
296
    reserve %35 8 8;
297
    br.ne w32 %34 0 @err12 @ok11;
298
  @ok11
299
    load w64 %36 %33 8;
300
    store w64 %36 %35 0;
301
    jmp @merge13;
302
  @err12
303
    unreachable;
304
  @merge13
305
    load w64 %37 %35 0;
306
    load w64 %38 %6 0;
307
    load w64 %39 %6 8;
308
    load w64 %40 %39 0;
309
    reserve %41 8 4;
310
    store w32 11 %41 0;
311
    store w32 11 %41 4;
312
    reserve %42 16 8;
313
    call w64 %43 %40(%42, %38, 8, 4);
314
    load w64 %44 %43 0;
315
    reserve %45 8 8;
316
    br.ne w32 %44 0 @err15 @ok14;
317
  @ok14
318
    load w64 %46 %43 8;
319
    blit %46 %41 8;
320
    load w64 %47 %43 8;
321
    store w64 %47 %45 0;
322
    jmp @merge16;
323
  @err15
324
    unreachable;
325
  @merge16
326
    load w64 %48 %45 0;
327
    load w64 %49 %6 0;
328
    load w64 %50 %6 8;
329
    load w64 %51 %50 8;
330
    reserve %52 8 4;
331
    store w32 1 %52 0;
332
    store w32 2 %52 4;
333
    reserve %53 24 8;
334
    call w64 %54 %51(%53, %49, 8, 4, 3);
335
    load w64 %55 %54 0;
336
    reserve %56 16 8;
337
    br.ne w32 %55 0 @err18 @ok17;
338
  @ok17
339
    load w64 %57 %54 8;
340
    jmp @fill19(0);
341
  @err18
342
    unreachable;
343
  @fill19(w32 %58)
344
    br.ult w32 %58 3 @fill20 @fill21;
345
  @fill20
346
    mul w64 %59 %58 8;
347
    add w64 %60 %57 %59;
348
    blit %60 %52 8;
349
    add w32 %61 %58 1;
350
    jmp @fill19(%61);
351
  @fill21
352
    add w64 %62 %54 8;
353
    blit %56 %62 16;
354
    jmp @merge22;
355
  @merge22
356
    load w64 %64 %6 0;
357
    load w64 %65 %6 8;
358
    load w64 %66 %65 8;
359
    load w64 %67 %56 0;
360
    load w32 %68 %56 8;
361
    reserve %69 16 8;
362
    store w64 %67 %69 0;
363
    store w32 %68 %69 8;
364
    store w32 %68 %69 12;
365
    load w32 %70 %69 8;
366
    reserve %71 24 8;
367
    call w64 %72 %66(%71, %64, 8, 4, %70);
368
    load w64 %73 %72 0;
369
    reserve %74 16 8;
370
    br.ne w32 %73 0 @err24 @ok23;
371
  @ok23
372
    load w64 %75 %72 8;
373
    load w64 %76 %69 0;
374
    mul w32 %77 %70 8;
375
    jmp @allocate.copy25(0);
376
  @err24
377
    unreachable;
378
  @allocate.copy25(w32 %78)
379
    br.ult w32 %78 %77 @allocate.copy26 @allocate.copy27;
380
  @allocate.copy26
381
    add w64 %79 %76 %78;
382
    load w8 %80 %79 0;
383
    add w64 %81 %75 %78;
384
    store w8 %80 %81 0;
385
    add w32 %82 %78 1;
386
    jmp @allocate.copy25(%82);
387
  @allocate.copy27
388
    add w64 %83 %72 8;
389
    blit %74 %83 16;
390
    jmp @merge28;
391
  @merge28
392
    load w32 %85 %56 8;
393
    br.ult w32 0 %85 @guard#pass29 @guard#trap30;
394
  @guard#pass29
395
    load w64 %86 %56 0;
396
    store w32 9 %86 0;
397
    load w32 %87 %74 8;
398
    br.ult w32 0 %87 @guard#pass33 @guard#trap34;
399
  @guard#trap30
400
    ebreak;
401
    unreachable;
402
  @assert.fail31
403
    unreachable;
404
  @assert.ok32
405
    load w32 %90 %74 8;
406
    br.ult w32 2 %90 @guard#pass37 @guard#trap38;
407
  @guard#pass33
408
    load w64 %88 %74 0;
409
    load w32 %89 %88 0;
410
    br.eq w32 %89 1 @assert.ok32 @assert.fail31;
411
  @guard#trap34
412
    ebreak;
413
    unreachable;
414
  @assert.fail35
415
    unreachable;
416
  @assert.ok36
417
    load w64 %96 %6 0;
418
    load w64 %97 %6 8;
419
    load w64 %98 %97 8;
420
    reserve %99 16 8;
421
    copy %100 1;
422
    br.ne w32 %100 0 @cond#then39 @cond#else40;
423
  @guard#pass37
424
    load w64 %91 %74 0;
425
    mul w64 %92 2 8;
426
    add w64 %93 %91 %92;
427
    load w32 %94 %93 4;
428
    br.eq w32 %94 2 @assert.ok36 @assert.fail35;
429
  @guard#trap38
430
    ebreak;
431
    unreachable;
432
  @cond#then39
433
    load w64 %101 %56 0;
434
    load w32 %102 %56 8;
435
    reserve %103 16 8;
436
    store w64 %101 %103 0;
437
    store w32 %102 %103 8;
438
    store w32 %102 %103 12;
439
    blit %99 %103 16;
440
    jmp @cond#merge41;
441
  @cond#else40
442
    load w64 %104 %74 0;
443
    load w32 %105 %74 8;
444
    reserve %106 16 8;
445
    store w64 %104 %106 0;
446
    store w32 %105 %106 8;
447
    store w32 %105 %106 12;
448
    blit %99 %106 16;
449
    jmp @cond#merge41;
450
  @cond#merge41
451
    load w32 %107 %99 8;
452
    reserve %108 24 8;
453
    call w64 %109 %98(%108, %96, 8, 4, %107);
454
    load w64 %110 %109 0;
455
    reserve %111 16 8;
456
    br.ne w32 %110 0 @err43 @ok42;
457
  @ok42
458
    load w64 %112 %109 8;
459
    load w64 %113 %99 0;
460
    mul w32 %114 %107 8;
461
    jmp @allocate.copy44(0);
462
  @err43
463
    unreachable;
464
  @allocate.copy44(w32 %115)
465
    br.ult w32 %115 %114 @allocate.copy45 @allocate.copy46;
466
  @allocate.copy45
467
    add w64 %116 %113 %115;
468
    load w8 %117 %116 0;
469
    add w64 %118 %112 %115;
470
    store w8 %117 %118 0;
471
    add w32 %119 %115 1;
472
    jmp @allocate.copy44(%119);
473
  @allocate.copy46
474
    add w64 %120 %109 8;
475
    blit %111 %120 16;
476
    jmp @merge47;
477
  @merge47
478
    load w32 %121 %111 8;
479
    br.ult w32 0 %121 @guard#pass50 @guard#trap51;
480
  @assert.fail48
481
    unreachable;
482
  @assert.ok49
483
    load w32 %126 %56 8;
484
    br.ult w32 1 %126 @guard#pass52 @guard#trap53;
485
  @guard#pass50
486
    load w64 %122 %111 0;
487
    load w32 %123 %122 0;
488
    br.eq w32 %123 9 @assert.ok49 @assert.fail48;
489
  @guard#trap51
490
    ebreak;
491
    unreachable;
492
  @guard#pass52
493
    load w64 %127 %56 0;
494
    mul w64 %128 1 8;
495
    add w64 %129 %127 %128;
496
    store w32 5 %129 0;
497
    load w32 %130 %111 8;
498
    br.ult w32 1 %130 @guard#pass56 @guard#trap57;
499
  @guard#trap53
500
    ebreak;
501
    unreachable;
502
  @assert.fail54
503
    unreachable;
504
  @assert.ok55
505
    load w64 %137 %6 0;
506
    load w64 %138 %6 8;
507
    load w64 %139 %138 0;
508
    reserve %144 16 8;
509
    call w64 %145 %139(%144, %137, 8, 8);
510
    load w64 %146 %145 0;
511
    reserve %147 8 8;
512
    br.ne w32 %146 0 @err59 @ok58;
513
  @guard#pass56
514
    load w64 %131 %111 0;
515
    mul w64 %132 1 8;
516
    add w64 %133 %131 %132;
517
    load w32 %134 %133 0;
518
    br.eq w32 %134 1 @assert.ok55 @assert.fail54;
519
  @guard#trap57
520
    ebreak;
521
    unreachable;
522
  @ok58
523
    load w64 %148 %145 8;
524
    store w64 %37 %148 0;
525
    load w64 %149 %145 8;
526
    store w64 %149 %147 0;
527
    jmp @merge60;
528
  @err59
529
    unreachable;
530
  @merge60
531
    load w64 %150 %147 0;
532
    load w64 %151 %150 0;
533
    load w32 %152 %151 0;
534
    br.eq w32 %152 20 @assert.ok62 @assert.fail61;
535
  @assert.fail61
536
    unreachable;
537
  @assert.ok62
538
    load w64 %153 %6 0;
539
    load w64 %154 %6 8;
540
    load w64 %155 %154 8;
541
    reserve %156 0 1;
542
    reserve %157 24 8;
543
    call w64 %158 %155(%157, %153, 1, 1, 0);
544
    load w64 %159 %158 0;
545
    reserve %160 16 8;
546
    br.ne w32 %159 0 @err64 @ok63;
547
  @ok63
548
    load w64 %161 %158 8;
549
    jmp @fill65(0);
550
  @err64
551
    unreachable;
552
  @fill65(w32 %162)
553
    br.ult w32 %162 0 @fill66 @fill67;
554
  @fill66
555
    mul w64 %163 %162 0;
556
    add w64 %164 %161 %163;
557
    blit %164 %156 0;
558
    add w32 %165 %162 1;
559
    jmp @fill65(%165);
560
  @fill67
561
    add w64 %166 %158 8;
562
    blit %160 %166 16;
563
    jmp @merge68;
564
  @merge68
565
    load w32 %167 %160 8;
566
    br.eq w32 %167 0 @assert.ok70 @assert.fail69;
567
  @assert.fail69
568
    unreachable;
569
  @assert.ok70
570
    load w64 %169 %6 0;
571
    load w64 %170 %6 8;
572
    load w64 %171 %170 0;
573
    reserve %172 0 1;
574
    reserve %173 16 8;
575
    call w64 %174 %171(%173, %169, 1, 1);
576
    load w64 %175 %174 0;
577
    reserve %176 8 8;
578
    br.ne w32 %175 0 @err72 @ok71;
579
  @ok71
580
    load w64 %177 %174 8;
581
    blit %177 %172 0;
582
    load w64 %178 %174 8;
583
    store w64 %178 %176 0;
584
    jmp @merge73;
585
  @err72
586
    unreachable;
587
  @merge73
588
    load w64 %179 %176 0;
589
    load w64 %180 %6 0;
590
    load w64 %181 %6 8;
591
    load w64 %182 %181 8;
592
    reserve %183 0 1;
593
    reserve %184 24 8;
594
    call w64 %185 %182(%184, %180, 1, 1, 2);
595
    load w64 %186 %185 0;
596
    reserve %187 16 8;
597
    br.ne w32 %186 0 @err75 @ok74;
598
  @ok74
599
    load w64 %188 %185 8;
600
    jmp @fill76(0);
601
  @err75
602
    unreachable;
603
  @fill76(w32 %189)
604
    br.ult w32 %189 2 @fill77 @fill78;
605
  @fill77
606
    mul w64 %190 %189 0;
607
    add w64 %191 %188 %190;
608
    blit %191 %183 0;
609
    add w32 %192 %189 1;
610
    jmp @fill76(%192);
611
  @fill78
612
    add w64 %193 %185 8;
613
    blit %187 %193 16;
614
    jmp @merge79;
615
  @merge79
616
    load w32 %194 %187 8;
617
    br.eq w32 %194 2 @assert.ok81 @assert.fail80;
618
  @assert.fail80
619
    unreachable;
620
  @assert.ok81
621
    load w64 %197 %150 0;
622
    load w32 %198 %197 0;
623
    br.eq w32 %198 20 @assert.ok83 @assert.fail82;
624
  @assert.fail82
625
    unreachable;
626
  @assert.ok83
627
    load w32 %205 %48 0;
628
    load w32 %206 %48 4;
629
    add w32 %207 %205 %206;
630
    br.eq w32 %207 22 @assert.ok85 @assert.fail84;
631
  @assert.fail84
632
    unreachable;
633
  @assert.ok85
634
    load w64 %208 %150 0;
635
    load w32 %209 %208 0;
636
    load w32 %210 %48 0;
637
    add w32 %211 %209 %210;
638
    load w32 %212 %48 4;
639
    add w32 %213 %211 %212;
640
    ret %213;
641
}