| ... | @@ -93,7 +93,7 @@ pub fn emitMir( | ... | @@ -93,7 +93,7 @@ pub fn emitMir( |
| 93 | .lduw => try emit.mirArithmetic3Op(inst), | 93 | .lduw => try emit.mirArithmetic3Op(inst), |
| 94 | .ldx => try emit.mirArithmetic3Op(inst), | 94 | .ldx => try emit.mirArithmetic3Op(inst), |
| 95 | | 95 | |
| 96 | .@"and" => @panic("TODO implement sparc64 and"), | 96 | .@"and" => try emit.mirArithmetic3Op(inst), |
| 97 | .@"or" => try emit.mirArithmetic3Op(inst), | 97 | .@"or" => try emit.mirArithmetic3Op(inst), |
| 98 | .xor => try emit.mirArithmetic3Op(inst), | 98 | .xor => try emit.mirArithmetic3Op(inst), |
| 99 | .xnor => try emit.mirArithmetic3Op(inst), | 99 | .xnor => try emit.mirArithmetic3Op(inst), |
| ... | @@ -227,6 +227,7 @@ fn mirArithmetic3Op(emit: *Emit, inst: Mir.Inst.Index) !void { | ... | @@ -227,6 +227,7 @@ fn mirArithmetic3Op(emit: *Emit, inst: Mir.Inst.Index) !void { |
| 227 | .lduh => try emit.writeInstruction(Instruction.lduh(i13, rs1, imm, rd)), | 227 | .lduh => try emit.writeInstruction(Instruction.lduh(i13, rs1, imm, rd)), |
| 228 | .lduw => try emit.writeInstruction(Instruction.lduw(i13, rs1, imm, rd)), | 228 | .lduw => try emit.writeInstruction(Instruction.lduw(i13, rs1, imm, rd)), |
| 229 | .ldx => try emit.writeInstruction(Instruction.ldx(i13, rs1, imm, rd)), | 229 | .ldx => try emit.writeInstruction(Instruction.ldx(i13, rs1, imm, rd)), |
| | 230 | .@"and" => try emit.writeInstruction(Instruction.@"and"(i13, rs1, imm, rd)), |
| 230 | .@"or" => try emit.writeInstruction(Instruction.@"or"(i13, rs1, imm, rd)), | 231 | .@"or" => try emit.writeInstruction(Instruction.@"or"(i13, rs1, imm, rd)), |
| 231 | .xor => try emit.writeInstruction(Instruction.xor(i13, rs1, imm, rd)), | 232 | .xor => try emit.writeInstruction(Instruction.xor(i13, rs1, imm, rd)), |
| 232 | .xnor => try emit.writeInstruction(Instruction.xnor(i13, rs1, imm, rd)), | 233 | .xnor => try emit.writeInstruction(Instruction.xnor(i13, rs1, imm, rd)), |
| ... | @@ -251,6 +252,7 @@ fn mirArithmetic3Op(emit: *Emit, inst: Mir.Inst.Index) !void { | ... | @@ -251,6 +252,7 @@ fn mirArithmetic3Op(emit: *Emit, inst: Mir.Inst.Index) !void { |
| 251 | .lduh => try emit.writeInstruction(Instruction.lduh(Register, rs1, rs2, rd)), | 252 | .lduh => try emit.writeInstruction(Instruction.lduh(Register, rs1, rs2, rd)), |
| 252 | .lduw => try emit.writeInstruction(Instruction.lduw(Register, rs1, rs2, rd)), | 253 | .lduw => try emit.writeInstruction(Instruction.lduw(Register, rs1, rs2, rd)), |
| 253 | .ldx => try emit.writeInstruction(Instruction.ldx(Register, rs1, rs2, rd)), | 254 | .ldx => try emit.writeInstruction(Instruction.ldx(Register, rs1, rs2, rd)), |
| | 255 | .@"and" => try emit.writeInstruction(Instruction.@"and"(Register, rs1, rs2, rd)), |
| 254 | .@"or" => try emit.writeInstruction(Instruction.@"or"(Register, rs1, rs2, rd)), | 256 | .@"or" => try emit.writeInstruction(Instruction.@"or"(Register, rs1, rs2, rd)), |
| 255 | .xor => try emit.writeInstruction(Instruction.xor(Register, rs1, rs2, rd)), | 257 | .xor => try emit.writeInstruction(Instruction.xor(Register, rs1, rs2, rd)), |
| 256 | .xnor => try emit.writeInstruction(Instruction.xnor(Register, rs1, rs2, rd)), | 258 | .xnor => try emit.writeInstruction(Instruction.xnor(Register, rs1, rs2, rd)), |