|
|
@ -1193,7 +1193,7 @@ pub fn constructor_alu_rr_extend_reg<C: Context>( |
|
|
|
let pattern0_0 = arg0; |
|
|
|
let pattern1_0 = arg1; |
|
|
|
let pattern2_0 = arg2; |
|
|
|
// Rule at src/isa/aarch64/inst.isle line 1409.
|
|
|
|
// Rule at src/isa/aarch64/inst.isle line 1411.
|
|
|
|
let expr0_0 = C::put_extended_in_reg(ctx, pattern2_0); |
|
|
|
let expr1_0 = C::get_extended_op(ctx, pattern2_0); |
|
|
|
let expr2_0 = constructor_alu_rrr_extend(ctx, pattern0_0, pattern1_0, expr0_0, &expr1_0)?; |
|
|
@ -1212,7 +1212,7 @@ pub fn constructor_alu_rrrr<C: Context>( |
|
|
|
let pattern1_0 = arg1; |
|
|
|
let pattern2_0 = arg2; |
|
|
|
let pattern3_0 = arg3; |
|
|
|
// Rule at src/isa/aarch64/inst.isle line 1416.
|
|
|
|
// Rule at src/isa/aarch64/inst.isle line 1418.
|
|
|
|
let expr0_0: Type = I64; |
|
|
|
let expr1_0 = C::temp_writable_reg(ctx, expr0_0); |
|
|
|
let expr2_0 = MInst::AluRRRR { |
|
|
@ -1233,25 +1233,25 @@ pub fn constructor_imm<C: Context>(ctx: &mut C, arg0: Type, arg1: u64) -> Option |
|
|
|
if let Some(pattern1_0) = C::integral_ty(ctx, pattern0_0) { |
|
|
|
let pattern2_0 = arg1; |
|
|
|
if let Some(pattern3_0) = C::imm_logic_from_u64(ctx, pattern2_0) { |
|
|
|
// Rule at src/isa/aarch64/inst.isle line 1434.
|
|
|
|
// Rule at src/isa/aarch64/inst.isle line 1436.
|
|
|
|
let expr0_0 = ALUOp::Orr64; |
|
|
|
let expr1_0 = C::zero_reg(ctx); |
|
|
|
let expr2_0 = constructor_alu_rr_imm_logic(ctx, &expr0_0, expr1_0, pattern3_0)?; |
|
|
|
return Some(expr2_0); |
|
|
|
} |
|
|
|
if let Some(pattern3_0) = C::move_wide_const_from_u64(ctx, pattern2_0) { |
|
|
|
// Rule at src/isa/aarch64/inst.isle line 1426.
|
|
|
|
// Rule at src/isa/aarch64/inst.isle line 1428.
|
|
|
|
let expr0_0 = OperandSize::Size64; |
|
|
|
let expr1_0 = constructor_movz(ctx, pattern3_0, &expr0_0)?; |
|
|
|
return Some(expr1_0); |
|
|
|
} |
|
|
|
if let Some(pattern3_0) = C::move_wide_const_from_negated_u64(ctx, pattern2_0) { |
|
|
|
// Rule at src/isa/aarch64/inst.isle line 1430.
|
|
|
|
// Rule at src/isa/aarch64/inst.isle line 1432.
|
|
|
|
let expr0_0 = OperandSize::Size64; |
|
|
|
let expr1_0 = constructor_movn(ctx, pattern3_0, &expr0_0)?; |
|
|
|
return Some(expr1_0); |
|
|
|
} |
|
|
|
// Rule at src/isa/aarch64/inst.isle line 1441.
|
|
|
|
// Rule at src/isa/aarch64/inst.isle line 1443.
|
|
|
|
let expr0_0 = C::load_constant64_full(ctx, pattern2_0); |
|
|
|
return Some(expr0_0); |
|
|
|
} |
|
|
|