authorgravatar for koachan@protonmail.comKoakuma <koachan@protonmail.com> 2022-04-02 08:44:56+07:00
committergravatar for koachan@protonmail.comKoakuma <koachan@protonmail.com> 2022-04-14 22:18:06+07:00
logcec48f2cf1009653ac1097328b75beaf0bf198d2
tree0d35291b31d2c9c68f4f548a12e8dee2d5876213
parent5ab6b5a77723d203644a7112cf37f3122c738986

stage2: sparcv9: Different formatting for genBody


1 files changed, 179 insertions(+), 160 deletions(-)

src/arch/sparcv9/CodeGen.zig+179-160
...@@ -481,166 +481,185 @@ fn genBody(self: *Self, body: []const Air.Inst.Index) InnerError!void {...@@ -481,166 +481,185 @@ fn genBody(self: *Self, body: []const Air.Inst.Index) InnerError!void {
481 try self.ensureProcessDeathCapacity(Liveness.bpi);481 try self.ensureProcessDeathCapacity(Liveness.bpi);
482482
483 switch (air_tags[inst]) {483 switch (air_tags[inst]) {
484 .arg => @panic("TODO implement arg"),484 // zig fmt: off
485 .add => @panic("TODO implement add"),485 .add, .ptr_add => @panic("TODO try self.airBinOp(inst)"),
486 .addwrap => @panic("TODO implement addwrap"),486 .addwrap => @panic("TODO try self.airAddWrap(inst)"),
487 .add_sat => @panic("TODO implement add_sat"),487 .add_sat => @panic("TODO try self.airAddSat(inst)"),
488 .sub => @panic("TODO implement sub"),488 .sub, .ptr_sub => @panic("TODO try self.airBinOp(inst)"),
489 .subwrap => @panic("TODO implement subwrap"),489 .subwrap => @panic("TODO try self.airSubWrap(inst)"),
490 .sub_sat => @panic("TODO implement sub_sat"),490 .sub_sat => @panic("TODO try self.airSubSat(inst)"),
491 .mul => @panic("TODO implement mul"),491 .mul => @panic("TODO try self.airMul(inst)"),
492 .mulwrap => @panic("TODO implement mulwrap"),492 .mulwrap => @panic("TODO try self.airMulWrap(inst)"),
493 .mul_sat => @panic("TODO implement mul_sat"),493 .mul_sat => @panic("TODO try self.airMulSat(inst)"),
494 .div_float => @panic("TODO implement div_float"),494 .rem => @panic("TODO try self.airRem(inst)"),
495 .div_trunc => @panic("TODO implement div_trunc"),495 .mod => @panic("TODO try self.airMod(inst)"),
496 .div_floor => @panic("TODO implement div_floor"),496 .shl, .shl_exact => @panic("TODO try self.airShl(inst)"),
497 .div_exact => @panic("TODO implement div_exact"),497 .shl_sat => @panic("TODO try self.airShlSat(inst)"),
498 .rem => @panic("TODO implement rem"),498 .min => @panic("TODO try self.airMin(inst)"),
499 .mod => @panic("TODO implement mod"),499 .max => @panic("TODO try self.airMax(inst)"),
500 .ptr_add => @panic("TODO implement ptr_add"),500 .slice => @panic("TODO try self.airSlice(inst)"),
501 .ptr_sub => @panic("TODO implement ptr_sub"),501
502 .max => @panic("TODO implement max"),502 .sqrt,
503 .min => @panic("TODO implement min"),503 .sin,
504 .add_with_overflow => @panic("TODO implement add_with_overflow"),504 .cos,
505 .sub_with_overflow => @panic("TODO implement sub_with_overflow"),505 .exp,
506 .mul_with_overflow => @panic("TODO implement mul_with_overflow"),506 .exp2,
507 .shl_with_overflow => @panic("TODO implement shl_with_overflow"),507 .log,
508 .alloc => @panic("TODO implement alloc"),508 .log2,
509 .ret_ptr => @panic("TODO implement ret_ptr"),509 .log10,
510 .assembly => @panic("TODO implement assembly"),510 .fabs,
511 .bit_and => @panic("TODO implement bit_and"),511 .floor,
512 .bit_or => @panic("TODO implement bit_or"),512 .ceil,
513 .shr => @panic("TODO implement shr"),513 .round,
514 .shr_exact => @panic("TODO implement shr_exact"),514 .trunc_float,
515 .shl => @panic("TODO implement shl"),515 => @panic("TODO try self.airUnaryMath(inst)"),
516 .shl_exact => @panic("TODO implement shl_exact"),516
517 .shl_sat => @panic("TODO implement shl_sat"),517 .add_with_overflow => @panic("TODO try self.airAddWithOverflow(inst)"),
518 .xor => @panic("TODO implement xor"),518 .sub_with_overflow => @panic("TODO try self.airSubWithOverflow(inst)"),
519 .not => @panic("TODO implement not"),519 .mul_with_overflow => @panic("TODO try self.airMulWithOverflow(inst)"),
520 .bitcast => @panic("TODO implement bitcast"),520 .shl_with_overflow => @panic("TODO try self.airShlWithOverflow(inst)"),
521 .block => @panic("TODO implement block"),521
522 .loop => @panic("TODO implement loop"),522 .div_float, .div_trunc, .div_floor, .div_exact => @panic("TODO try self.airDiv(inst)"),
523 .br => @panic("TODO implement br"),523
524 .breakpoint => @panic("TODO implement breakpoint"),524 .cmp_lt => @panic("TODO try self.airCmp(inst, .lt)"),
525 .ret_addr => @panic("TODO implement ret_addr"),525 .cmp_lte => @panic("TODO try self.airCmp(inst, .lte)"),
526 .frame_addr => @panic("TODO implement frame_addr"),526 .cmp_eq => @panic("TODO try self.airCmp(inst, .eq)"),
527 .call => @panic("TODO implement call"),527 .cmp_gte => @panic("TODO try self.airCmp(inst, .gte)"),
528 .call_always_tail => @panic("TODO implement call_always_tail"),528 .cmp_gt => @panic("TODO try self.airCmp(inst, .gt)"),
529 .call_never_tail => @panic("TODO implement call_never_tail"),529 .cmp_neq => @panic("TODO try self.airCmp(inst, .neq)"),
530 .call_never_inline => @panic("TODO implement call_never_inline"),530 .cmp_vector => @panic("TODO try self.airCmpVector(inst)"),
531 .clz => @panic("TODO implement clz"),531
532 .ctz => @panic("TODO implement ctz"),532 .bool_and => @panic("TODO try self.airBoolOp(inst)"),
533 .popcount => @panic("TODO implement popcount"),533 .bool_or => @panic("TODO try self.airBoolOp(inst)"),
534 .byte_swap => @panic("TODO implement byte_swap"),534 .bit_and => @panic("TODO try self.airBitAnd(inst)"),
535 .bit_reverse => @panic("TODO implement bit_reverse"),535 .bit_or => @panic("TODO try self.airBitOr(inst)"),
536 .sqrt => @panic("TODO implement sqrt"),536 .xor => @panic("TODO try self.airXor(inst)"),
537 .sin => @panic("TODO implement sin"),537 .shr, .shr_exact => @panic("TODO try self.airShr(inst)"),
538 .cos => @panic("TODO implement cos"),538
539 .exp => @panic("TODO implement exp"),539 .alloc => @panic("TODO try self.airAlloc(inst)"),
540 .exp2 => @panic("TODO implement exp2"),540 .ret_ptr => @panic("TODO try self.airRetPtr(inst)"),
541 .log => @panic("TODO implement log"),541 .arg => @panic("TODO try self.airArg(inst)"),
542 .log2 => @panic("TODO implement log2"),542 .assembly => @panic("TODO try self.airAsm(inst)"),
543 .log10 => @panic("TODO implement log10"),543 .bitcast => @panic("TODO try self.airBitCast(inst)"),
544 .fabs => @panic("TODO implement fabs"),544 .block => @panic("TODO try self.airBlock(inst)"),
545 .floor => @panic("TODO implement floor"),545 .br => @panic("TODO try self.airBr(inst)"),
546 .ceil => @panic("TODO implement ceil"),546 .breakpoint => @panic("TODO try self.airBreakpoint()"),
547 .round => @panic("TODO implement round"),547 .ret_addr => @panic("TODO try self.airRetAddr(inst)"),
548 .trunc_float => @panic("TODO implement trunc_float"),548 .frame_addr => @panic("TODO try self.airFrameAddress(inst)"),
549 .cmp_lt => @panic("TODO implement cmp_lt"),549 .fence => @panic("TODO try self.airFence()"),
550 .cmp_lte => @panic("TODO implement cmp_lte"),550 .cond_br => @panic("TODO try self.airCondBr(inst)"),
551 .cmp_eq => @panic("TODO implement cmp_eq"),551 .dbg_stmt => @panic("TODO try self.airDbgStmt(inst)"),
552 .cmp_gte => @panic("TODO implement cmp_gte"),552 .fptrunc => @panic("TODO try self.airFptrunc(inst)"),
553 .cmp_gt => @panic("TODO implement cmp_gt"),553 .fpext => @panic("TODO try self.airFpext(inst)"),
554 .cmp_neq => @panic("TODO implement cmp_neq"),554 .intcast => @panic("TODO try self.airIntCast(inst)"),
555 .cmp_vector => @panic("TODO implement cmp_vector"),555 .trunc => @panic("TODO try self.airTrunc(inst)"),
556 .cond_br => @panic("TODO implement cond_br"),556 .bool_to_int => @panic("TODO try self.airBoolToInt(inst)"),
557 .switch_br => @panic("TODO implement switch_br"),557 .is_non_null => @panic("TODO try self.airIsNonNull(inst)"),
558 .constant => @panic("TODO implement constant"),558 .is_non_null_ptr => @panic("TODO try self.airIsNonNullPtr(inst)"),
559 .const_ty => @panic("TODO implement const_ty"),559 .is_null => @panic("TODO try self.airIsNull(inst)"),
560 .dbg_stmt => @panic("TODO implement dbg_stmt"),560 .is_null_ptr => @panic("TODO try self.airIsNullPtr(inst)"),
561 .dbg_block_begin => @panic("TODO implement dbg_block_begin"),561 .is_non_err => @panic("TODO try self.airIsNonErr(inst)"),
562 .dbg_block_end => @panic("TODO implement dbg_block_end"),562 .is_non_err_ptr => @panic("TODO try self.airIsNonErrPtr(inst)"),
563 .dbg_inline_begin => @panic("TODO implement dbg_inline_begin"),563 .is_err => @panic("TODO try self.airIsErr(inst)"),
564 .dbg_inline_end => @panic("TODO implement dbg_inline_end"),564 .is_err_ptr => @panic("TODO try self.airIsErrPtr(inst)"),
565 .dbg_var_ptr => @panic("TODO implement dbg_var_ptr"),565 .load => @panic("TODO try self.airLoad(inst)"),
566 .dbg_var_val => @panic("TODO implement dbg_var_val"),566 .loop => @panic("TODO try self.airLoop(inst)"),
567 .is_null => @panic("TODO implement is_null"),567 .not => @panic("TODO try self.airNot(inst)"),
568 .is_non_null => @panic("TODO implement is_non_null"),568 .ptrtoint => @panic("TODO try self.airPtrToInt(inst)"),
569 .is_null_ptr => @panic("TODO implement is_null_ptr"),569 .ret => @panic("TODO try self.airRet(inst)"),
570 .is_non_null_ptr => @panic("TODO implement is_non_null_ptr"),570 .ret_load => @panic("TODO try self.airRetLoad(inst)"),
571 .is_err => @panic("TODO implement is_err"),571 .store => @panic("TODO try self.airStore(inst)"),
572 .is_non_err => @panic("TODO implement is_non_err"),572 .struct_field_ptr=> @panic("TODO try self.airStructFieldPtr(inst)"),
573 .is_err_ptr => @panic("TODO implement is_err_ptr"),573 .struct_field_val=> @panic("TODO try self.airStructFieldVal(inst)"),
574 .is_non_err_ptr => @panic("TODO implement is_non_err_ptr"),574 .array_to_slice => @panic("TODO try self.airArrayToSlice(inst)"),
575 .bool_and => @panic("TODO implement bool_and"),575 .int_to_float => @panic("TODO try self.airIntToFloat(inst)"),
576 .bool_or => @panic("TODO implement bool_or"),576 .float_to_int => @panic("TODO try self.airFloatToInt(inst)"),
577 .load => @panic("TODO implement load"),577 .cmpxchg_strong => @panic("TODO try self.airCmpxchg(inst)"),
578 .ptrtoint => @panic("TODO implement ptrtoint"),578 .cmpxchg_weak => @panic("TODO try self.airCmpxchg(inst)"),
579 .bool_to_int => @panic("TODO implement bool_to_int"),579 .atomic_rmw => @panic("TODO try self.airAtomicRmw(inst)"),
580 .ret => @panic("TODO implement ret"),580 .atomic_load => @panic("TODO try self.airAtomicLoad(inst)"),
581 .ret_load => @panic("TODO implement ret_load"),581 .memcpy => @panic("TODO try self.airMemcpy(inst)"),
582 .store => @panic("TODO implement store"),582 .memset => @panic("TODO try self.airMemset(inst)"),
583 .unreach => @panic("TODO implement unreach"),583 .set_union_tag => @panic("TODO try self.airSetUnionTag(inst)"),
584 .fptrunc => @panic("TODO implement fptrunc"),584 .get_union_tag => @panic("TODO try self.airGetUnionTag(inst)"),
585 .fpext => @panic("TODO implement fpext"),585 .clz => @panic("TODO try self.airClz(inst)"),
586 .intcast => @panic("TODO implement intcast"),586 .ctz => @panic("TODO try self.airCtz(inst)"),
587 .trunc => @panic("TODO implement trunc"),587 .popcount => @panic("TODO try self.airPopcount(inst)"),
588 .optional_payload => @panic("TODO implement optional_payload"),588 .byte_swap => @panic("TODO try self.airByteSwap(inst)"),
589 .optional_payload_ptr => @panic("TODO implement optional_payload_ptr"),589 .bit_reverse => @panic("TODO try self.airBitReverse(inst)"),
590 .optional_payload_ptr_set => @panic("TODO implement optional_payload_ptr_set"),590 .tag_name => @panic("TODO try self.airTagName(inst)"),
591 .wrap_optional => @panic("TODO implement wrap_optional"),591 .error_name => @panic("TODO try self.airErrorName(inst)"),
592 .unwrap_errunion_payload => @panic("TODO implement unwrap_errunion_payload"),592 .splat => @panic("TODO try self.airSplat(inst)"),
593 .unwrap_errunion_err => @panic("TODO implement unwrap_errunion_err"),593 .select => @panic("TODO try self.airSelect(inst)"),
594 .unwrap_errunion_payload_ptr => @panic("TODO implement unwrap_errunion_payload_ptr"),594 .shuffle => @panic("TODO try self.airShuffle(inst)"),
595 .unwrap_errunion_err_ptr => @panic("TODO implement unwrap_errunion_err_ptr"),595 .reduce => @panic("TODO try self.airReduce(inst)"),
596 .errunion_payload_ptr_set => @panic("TODO implement errunion_payload_ptr_set"),596 .aggregate_init => @panic("TODO try self.airAggregateInit(inst)"),
597 .wrap_errunion_payload => @panic("TODO implement wrap_errunion_payload"),597 .union_init => @panic("TODO try self.airUnionInit(inst)"),
598 .wrap_errunion_err => @panic("TODO implement wrap_errunion_err"),598 .prefetch => @panic("TODO try self.airPrefetch(inst)"),
599 .struct_field_ptr => @panic("TODO implement struct_field_ptr"),599 .mul_add => @panic("TODO try self.airMulAdd(inst)"),
600 .struct_field_ptr_index_0 => @panic("TODO implement struct_field_ptr_index_0"),600
601 .struct_field_ptr_index_1 => @panic("TODO implement struct_field_ptr_index_1"),601 .dbg_var_ptr,
602 .struct_field_ptr_index_2 => @panic("TODO implement struct_field_ptr_index_2"),602 .dbg_var_val,
603 .struct_field_ptr_index_3 => @panic("TODO implement struct_field_ptr_index_3"),603 => @panic("TODO try self.airDbgVar(inst)"),
604 .struct_field_val => @panic("TODO implement struct_field_val"),604
605 .set_union_tag => @panic("TODO implement set_union_tag"),605 .dbg_inline_begin,
606 .get_union_tag => @panic("TODO implement get_union_tag"),606 .dbg_inline_end,
607 .slice => @panic("TODO implement slice"),607 => @panic("TODO try self.airDbgInline(inst)"),
608 .slice_len => @panic("TODO implement slice_len"),608
609 .slice_ptr => @panic("TODO implement slice_ptr"),609 .dbg_block_begin,
610 .ptr_slice_len_ptr => @panic("TODO implement ptr_slice_len_ptr"),610 .dbg_block_end,
611 .ptr_slice_ptr_ptr => @panic("TODO implement ptr_slice_ptr_ptr"),611 => @panic("TODO try self.airDbgBlock(inst)"),
612 .array_elem_val => @panic("TODO implement array_elem_val"),612
613 .slice_elem_val => @panic("TODO implement slice_elem_val"),613 .call => @panic("TODO try self.airCall(inst, .auto)"),
614 .slice_elem_ptr => @panic("TODO implement slice_elem_ptr"),614 .call_always_tail => @panic("TODO try self.airCall(inst, .always_tail)"),
615 .ptr_elem_val => @panic("TODO implement ptr_elem_val"),615 .call_never_tail => @panic("TODO try self.airCall(inst, .never_tail)"),
616 .ptr_elem_ptr => @panic("TODO implement ptr_elem_ptr"),616 .call_never_inline => @panic("TODO try self.airCall(inst, .never_inline)"),
617 .array_to_slice => @panic("TODO implement array_to_slice"),617
618 .float_to_int => @panic("TODO implement float_to_int"),618 .atomic_store_unordered => @panic("TODO try self.airAtomicStore(inst, .Unordered)"),
619 .int_to_float => @panic("TODO implement int_to_float"),619 .atomic_store_monotonic => @panic("TODO try self.airAtomicStore(inst, .Monotonic)"),
620 .reduce => @panic("TODO implement reduce"),620 .atomic_store_release => @panic("TODO try self.airAtomicStore(inst, .Release)"),
621 .splat => @panic("TODO implement splat"),621 .atomic_store_seq_cst => @panic("TODO try self.airAtomicStore(inst, .SeqCst)"),
622 .shuffle => @panic("TODO implement shuffle"),622
623 .select => @panic("TODO implement select"),623 .struct_field_ptr_index_0 => @panic("TODO try self.airStructFieldPtrIndex(inst, 0)"),
624 .memset => @panic("TODO implement memset"),624 .struct_field_ptr_index_1 => @panic("TODO try self.airStructFieldPtrIndex(inst, 1)"),
625 .memcpy => @panic("TODO implement memcpy"),625 .struct_field_ptr_index_2 => @panic("TODO try self.airStructFieldPtrIndex(inst, 2)"),
626 .cmpxchg_weak => @panic("TODO implement cmpxchg_weak"),626 .struct_field_ptr_index_3 => @panic("TODO try self.airStructFieldPtrIndex(inst, 3)"),
627 .cmpxchg_strong => @panic("TODO implement cmpxchg_strong"),627
628 .fence => @panic("TODO implement fence"),628 .field_parent_ptr => @panic("TODO try self.airFieldParentPtr(inst)"),
629 .atomic_load => @panic("TODO implement atomic_load"),629
630 .atomic_store_unordered => @panic("TODO implement atomic_store_unordered"),630 .switch_br => @panic("TODO try self.airSwitch(inst)"),
631 .atomic_store_monotonic => @panic("TODO implement atomic_store_monotonic"),631 .slice_ptr => @panic("TODO try self.airSlicePtr(inst)"),
632 .atomic_store_release => @panic("TODO implement atomic_store_release"),632 .slice_len => @panic("TODO try self.airSliceLen(inst)"),
633 .atomic_store_seq_cst => @panic("TODO implement atomic_store_seq_cst"),633
634 .atomic_rmw => @panic("TODO implement atomic_rmw"),634 .ptr_slice_len_ptr => @panic("TODO try self.airPtrSliceLenPtr(inst)"),
635 .tag_name => @panic("TODO implement tag_name"),635 .ptr_slice_ptr_ptr => @panic("TODO try self.airPtrSlicePtrPtr(inst)"),
636 .error_name => @panic("TODO implement error_name"),636
637 .aggregate_init => @panic("TODO implement aggregate_init"),637 .array_elem_val => @panic("TODO try self.airArrayElemVal(inst)"),
638 .union_init => @panic("TODO implement union_init"),638 .slice_elem_val => @panic("TODO try self.airSliceElemVal(inst)"),
639 .prefetch => @panic("TODO implement prefetch"),639 .slice_elem_ptr => @panic("TODO try self.airSliceElemPtr(inst)"),
640 .mul_add => @panic("TODO implement mul_add"),640 .ptr_elem_val => @panic("TODO try self.airPtrElemVal(inst)"),
641 .field_parent_ptr => @panic("TODO implement field_parent_ptr"),641 .ptr_elem_ptr => @panic("TODO try self.airPtrElemPtr(inst)"),
642642
643 .wasm_memory_size, .wasm_memory_grow => unreachable,643 .constant => unreachable, // excluded from function bodies
644 .const_ty => unreachable, // excluded from function bodies
645 .unreach => @panic("TODO self.finishAirBookkeeping()"),
646
647 .optional_payload => @panic("TODO try self.airOptionalPayload(inst)"),
648 .optional_payload_ptr => @panic("TODO try self.airOptionalPayloadPtr(inst)"),
649 .optional_payload_ptr_set => @panic("TODO try self.airOptionalPayloadPtrSet(inst)"),
650 .unwrap_errunion_err => @panic("TODO try self.airUnwrapErrErr(inst)"),
651 .unwrap_errunion_payload => @panic("TODO try self.airUnwrapErrPayload(inst)"),
652 .unwrap_errunion_err_ptr => @panic("TODO try self.airUnwrapErrErrPtr(inst)"),
653 .unwrap_errunion_payload_ptr=> @panic("TODO try self.airUnwrapErrPayloadPtr(inst)"),
654 .errunion_payload_ptr_set => @panic("TODO try self.airErrUnionPayloadPtrSet(inst)"),
655
656 .wrap_optional => @panic("TODO try self.airWrapOptional(inst)"),
657 .wrap_errunion_payload => @panic("TODO try self.airWrapErrUnionPayload(inst)"),
658 .wrap_errunion_err => @panic("TODO try self.airWrapErrUnionErr(inst)"),
659
660 .wasm_memory_size => unreachable,
661 .wasm_memory_grow => unreachable,
662 // zig fmt: on
644 }663 }
645664
646 if (std.debug.runtime_safety) {665 if (std.debug.runtime_safety) {