Skip to content
Merged
Show file tree
Hide file tree
Changes from 13 commits
Commits
Show all changes
18 commits
Select commit Hold shift + click to select a range
5792b0d
cc: add hwmap pass — centralized target-specific IR lowering
jgarzik Mar 22, 2026
8303d8b
cc: add --dump-ir=<stage> and Float16 integration test
jgarzik Mar 22, 2026
1dc2b7e
cc: migrate Float16 soft-float from linearizer to hwmap
jgarzik Mar 22, 2026
2fa9462
cc: move complex mul/div rtlib name selection to hwmap
jgarzik Mar 22, 2026
46b3b26
cc: add 8 int128 decomposition opcodes + hwmap expansions
jgarzik Mar 22, 2026
a7ae7f9
cc: show src_size in IR Display for conversion ops
jgarzik Mar 22, 2026
a921630
cc: remove ~1200 lines of duplicated int128 backend code
jgarzik Mar 22, 2026
05468f1
cc: address hwmap code review findings
jgarzik Mar 23, 2026
3c9a8c8
cc: refactor hwmap into arch-specific mapping pass
jgarzik Mar 23, 2026
28c8fbf
cc: redesign IR pass interface, migrate shifts + Float16 to mapping pass
jgarzik Mar 23, 2026
2fb14de
cc: panic on unexpected int128 binop in x86_64 backend
jgarzik Mar 23, 2026
541f92c
cc: replace lexer char_class() match with compile-time 256-byte looku…
jgarzik Mar 23, 2026
be14929
cc: add pre-interned keyword system with tag-based O(1) classification
jgarzik Mar 23, 2026
2b596f1
cc: fix kw.rs warnings — use anonymous entries for tag-only keywords
jgarzik Mar 23, 2026
2b6a81d
cc: promote keyword ID assertions from debug_assert to assert
jgarzik Mar 23, 2026
4f4f46d
cc: fix potential panic in eval_has_builtin on empty macro args
jgarzik Mar 23, 2026
45ae13c
cc: add test ensuring SUPPORTED_BUILTINS and kw BUILTIN tags stay in …
jgarzik Mar 23, 2026
3e16b3d
cc: fix aarch64 float16 conversion using fmov instead of fcvt
jgarzik Mar 23, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 10 additions & 0 deletions cc/arch/aarch64/codegen.rs
Original file line number Diff line number Diff line change
Expand Up @@ -1745,6 +1745,16 @@ impl Aarch64CodeGen {
self.emit_fence(insn);
}

// Int128 decomposition ops (from mapping pass expansion)
Opcode::Lo64 => self.emit_lo64(insn),
Opcode::Hi64 => self.emit_hi64(insn),
Opcode::Pair64 => self.emit_pair64(insn),
Opcode::AddC => self.emit_addc(insn, false),
Opcode::AdcC => self.emit_addc(insn, true),
Opcode::SubC => self.emit_subc(insn, false),
Opcode::SbcC => self.emit_subc(insn, true),
Opcode::UMulHi => self.emit_umulhi(insn),

// Skip no-ops and unimplemented
_ => {}
}
Expand Down
Loading
Loading