2025-08-09
2025-08-08 ← 2025-08 → 2025-08-10
冗長だ!
入力: a = 1; b = 2; return a + b;
code:asm
.intel_syntax noprefix
.globl main
main:
push rbp
mov rbp, rsp
sub rsp, 16
mov rsi, 1
mov rdi, rsi
mov rcx, 2
mov rsi, rcx
add rdi, rsi
mov rdi, rdi
mov rax, rdi
mov rsp, rbp
pop rbp
ret
code:rs
context.emit(TAC::BinOpCode {
dest: dest_vreg,
left: Operand::Reg(left_vreg),
op,
right: Operand::Reg(right_vreg),
});
ここがおかしいな
二項演算子の両辺はレジスタで良い
同じレジスタに代入する挙動を除くには、IRの捜査時とコード生成時があるけど、前者の方がいいか
コード生成時に余計なことをしない
一週間前: 2025-08-02
100日前: 2025-05-01
#日記