Skip to content

Commit

Permalink
Rename BinaryImm format to BinaryImm64
Browse files Browse the repository at this point in the history
  • Loading branch information
abrown committed May 27, 2020
1 parent 31bce8c commit b02078a
Show file tree
Hide file tree
Showing 14 changed files with 54 additions and 54 deletions.
6 changes: 3 additions & 3 deletions cranelift/codegen/meta/src/isa/riscv/recipes.rs
Original file line number Diff line number Diff line change
Expand Up @@ -64,7 +64,7 @@ pub(crate) fn define(shared_defs: &SharedDefinitions, regs: &IsaRegs) -> RecipeG

// R-type with an immediate shift amount instead of rs2.
recipes.push(
EncodingRecipeBuilder::new("Rshamt", &formats.binary_imm, 4)
EncodingRecipeBuilder::new("Rshamt", &formats.binary_imm64, 4)
.operands_in(vec![gpr])
.operands_out(vec![gpr])
.emit("put_rshamt(bits, in_reg0, imm.into(), out_reg0, sink);"),
Expand All @@ -79,11 +79,11 @@ pub(crate) fn define(shared_defs: &SharedDefinitions, regs: &IsaRegs) -> RecipeG
);

recipes.push(
EncodingRecipeBuilder::new("Ii", &formats.binary_imm, 4)
EncodingRecipeBuilder::new("Ii", &formats.binary_imm64, 4)
.operands_in(vec![gpr])
.operands_out(vec![gpr])
.inst_predicate(InstructionPredicate::new_is_signed_int(
&*formats.binary_imm,
&*formats.binary_imm64,
"imm",
12,
0,
Expand Down
20 changes: 10 additions & 10 deletions cranelift/codegen/meta/src/isa/x86/recipes.rs
Original file line number Diff line number Diff line change
Expand Up @@ -907,11 +907,11 @@ pub(crate) fn define<'shared>(
// XX /n ib with 8-bit immediate sign-extended.
{
recipes.add_template_inferred(
EncodingRecipeBuilder::new("r_ib", &formats.binary_imm, 2)
EncodingRecipeBuilder::new("r_ib", &formats.binary_imm64, 2)
.operands_in(vec![gpr])
.operands_out(vec![0])
.inst_predicate(InstructionPredicate::new_is_signed_int(
&*formats.binary_imm,
&*formats.binary_imm64,
"imm",
8,
0,
Expand All @@ -928,11 +928,11 @@ pub(crate) fn define<'shared>(
);

recipes.add_template_inferred(
EncodingRecipeBuilder::new("f_ib", &formats.binary_imm, 2)
EncodingRecipeBuilder::new("f_ib", &formats.binary_imm64, 2)
.operands_in(vec![fpr])
.operands_out(vec![0])
.inst_predicate(InstructionPredicate::new_is_signed_int(
&*formats.binary_imm,
&*formats.binary_imm64,
"imm",
8,
0,
Expand All @@ -951,11 +951,11 @@ pub(crate) fn define<'shared>(
// XX /n id with 32-bit immediate sign-extended.
recipes.add_template(
Template::new(
EncodingRecipeBuilder::new("r_id", &formats.binary_imm, 5)
EncodingRecipeBuilder::new("r_id", &formats.binary_imm64, 5)
.operands_in(vec![gpr])
.operands_out(vec![0])
.inst_predicate(InstructionPredicate::new_is_signed_int(
&*formats.binary_imm,
&*formats.binary_imm64,
"imm",
32,
0,
Expand Down Expand Up @@ -2871,12 +2871,12 @@ pub(crate) fn define<'shared>(

{
let has_small_offset =
InstructionPredicate::new_is_signed_int(&*formats.binary_imm, "imm", 8, 0);
InstructionPredicate::new_is_signed_int(&*formats.binary_imm64, "imm", 8, 0);

// XX /n, MI form with imm8.
recipes.add_template(
Template::new(
EncodingRecipeBuilder::new("rcmp_ib", &formats.binary_imm, 2)
EncodingRecipeBuilder::new("rcmp_ib", &formats.binary_imm64, 2)
.operands_in(vec![gpr])
.operands_out(vec![reg_rflags])
.inst_predicate(has_small_offset)
Expand All @@ -2894,12 +2894,12 @@ pub(crate) fn define<'shared>(
);

let has_big_offset =
InstructionPredicate::new_is_signed_int(&*formats.binary_imm, "imm", 32, 0);
InstructionPredicate::new_is_signed_int(&*formats.binary_imm64, "imm", 32, 0);

// XX /n, MI form with imm32.
recipes.add_template(
Template::new(
EncodingRecipeBuilder::new("rcmp_id", &formats.binary_imm, 5)
EncodingRecipeBuilder::new("rcmp_id", &formats.binary_imm64, 5)
.operands_in(vec![gpr])
.operands_out(vec![reg_rflags])
.inst_predicate(has_big_offset)
Expand Down
4 changes: 2 additions & 2 deletions cranelift/codegen/meta/src/shared/formats.rs
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ use std::rc::Rc;

pub(crate) struct Formats {
pub(crate) binary: Rc<InstructionFormat>,
pub(crate) binary_imm: Rc<InstructionFormat>,
pub(crate) binary_imm64: Rc<InstructionFormat>,
pub(crate) branch: Rc<InstructionFormat>,
pub(crate) branch_float: Rc<InstructionFormat>,
pub(crate) branch_icmp: Rc<InstructionFormat>,
Expand Down Expand Up @@ -78,7 +78,7 @@ impl Formats {

binary_imm8: Builder::new("BinaryImm8").value().imm(&imm.uimm8).build(),

binary_imm: Builder::new("BinaryImm").value().imm(&imm.imm64).build(),
binary_imm64: Builder::new("BinaryImm64").value().imm(&imm.imm64).build(),

// The select instructions are controlled by the second VALUE operand.
// The first VALUE operand is the controlling flag which has a derived type.
Expand Down
32 changes: 16 additions & 16 deletions cranelift/codegen/meta/src/shared/instructions.rs
Original file line number Diff line number Diff line change
Expand Up @@ -2215,7 +2215,7 @@ pub(crate) fn define(
Like `icmp_imm`, but returns integer CPU flags instead of testing
a specific condition code.
"#,
&formats.binary_imm,
&formats.binary_imm64,
)
.operands_in(vec![x, Y])
.operands_out(vec![f]),
Expand Down Expand Up @@ -2460,7 +2460,7 @@ pub(crate) fn define(
Polymorphic over all scalar integer types, but does not support vector
types.
"#,
&formats.binary_imm,
&formats.binary_imm64,
)
.operands_in(vec![x, Y])
.operands_out(vec![a]),
Expand All @@ -2475,7 +2475,7 @@ pub(crate) fn define(
Polymorphic over all scalar integer types, but does not support vector
types.
"#,
&formats.binary_imm,
&formats.binary_imm64,
)
.operands_in(vec![x, Y])
.operands_out(vec![a]),
Expand All @@ -2489,7 +2489,7 @@ pub(crate) fn define(
This operation traps if the divisor is zero.
"#,
&formats.binary_imm,
&formats.binary_imm64,
)
.operands_in(vec![x, Y])
.operands_out(vec![a]),
Expand All @@ -2505,7 +2505,7 @@ pub(crate) fn define(
representable in `B` bits two's complement. This only happens
when `x = -2^{B-1}, Y = -1`.
"#,
&formats.binary_imm,
&formats.binary_imm64,
)
.operands_in(vec![x, Y])
.operands_out(vec![a]),
Expand All @@ -2519,7 +2519,7 @@ pub(crate) fn define(
This operation traps if the divisor is zero.
"#,
&formats.binary_imm,
&formats.binary_imm64,
)
.operands_in(vec![x, Y])
.operands_out(vec![a]),
Expand All @@ -2533,7 +2533,7 @@ pub(crate) fn define(
This operation traps if the divisor is zero.
"#,
&formats.binary_imm,
&formats.binary_imm64,
)
.operands_in(vec![x, Y])
.operands_out(vec![a]),
Expand All @@ -2552,7 +2552,7 @@ pub(crate) fn define(
Polymorphic over all scalar integer types, but does not support vector
types.
"#,
&formats.binary_imm,
&formats.binary_imm64,
)
.operands_in(vec![x, Y])
.operands_out(vec![a]),
Expand Down Expand Up @@ -2952,7 +2952,7 @@ pub(crate) fn define(
Polymorphic over all scalar integer types, but does not support vector
types.
"#,
&formats.binary_imm,
&formats.binary_imm64,
)
.operands_in(vec![x, Y])
.operands_out(vec![a]),
Expand All @@ -2969,7 +2969,7 @@ pub(crate) fn define(
Polymorphic over all scalar integer types, but does not support vector
types.
"#,
&formats.binary_imm,
&formats.binary_imm64,
)
.operands_in(vec![x, Y])
.operands_out(vec![a]),
Expand All @@ -2986,7 +2986,7 @@ pub(crate) fn define(
Polymorphic over all scalar integer types, but does not support vector
types.
"#,
&formats.binary_imm,
&formats.binary_imm64,
)
.operands_in(vec![x, Y])
.operands_out(vec![a]),
Expand Down Expand Up @@ -3031,7 +3031,7 @@ pub(crate) fn define(
r#"
Rotate left by immediate.
"#,
&formats.binary_imm,
&formats.binary_imm64,
)
.operands_in(vec![x, Y])
.operands_out(vec![a]),
Expand All @@ -3043,7 +3043,7 @@ pub(crate) fn define(
r#"
Rotate right by immediate.
"#,
&formats.binary_imm,
&formats.binary_imm64,
)
.operands_in(vec![x, Y])
.operands_out(vec![a]),
Expand Down Expand Up @@ -3118,7 +3118,7 @@ pub(crate) fn define(
The shift amount is masked to the size of ``x``.
"#,
&formats.binary_imm,
&formats.binary_imm64,
)
.operands_in(vec![x, Y])
.operands_out(vec![a]),
Expand All @@ -3132,7 +3132,7 @@ pub(crate) fn define(
The shift amount is masked to the size of the register.
"#,
&formats.binary_imm,
&formats.binary_imm64,
)
.operands_in(vec![x, Y])
.operands_out(vec![a]),
Expand All @@ -3146,7 +3146,7 @@ pub(crate) fn define(
The shift amount is masked to the size of the register.
"#,
&formats.binary_imm,
&formats.binary_imm64,
)
.operands_in(vec![x, Y])
.operands_out(vec![a]),
Expand Down
2 changes: 1 addition & 1 deletion cranelift/codegen/src/ir/instructions.rs
Original file line number Diff line number Diff line change
Expand Up @@ -306,7 +306,7 @@ impl InstructionData {
let bit_width = ctrl_typevar.bits();

match self {
Self::BinaryImm {
Self::BinaryImm64 {
opcode,
arg: _,
imm,
Expand Down
12 changes: 6 additions & 6 deletions cranelift/codegen/src/isa/riscv/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -163,7 +163,7 @@ mod tests {
let arg32 = func.dfg.append_block_param(block, types::I32);

// Try to encode iadd_imm.i64 v1, -10.
let inst64 = InstructionData::BinaryImm {
let inst64 = InstructionData::BinaryImm64 {
opcode: Opcode::IaddImm,
arg: arg64,
imm: immediates::Imm64::new(-10),
Expand All @@ -176,7 +176,7 @@ mod tests {
);

// Try to encode iadd_imm.i64 v1, -10000.
let inst64_large = InstructionData::BinaryImm {
let inst64_large = InstructionData::BinaryImm64 {
opcode: Opcode::IaddImm,
arg: arg64,
imm: immediates::Imm64::new(-10000),
Expand All @@ -186,7 +186,7 @@ mod tests {
assert!(isa.encode(&func, &inst64_large, types::I64).is_err());

// Create an iadd_imm.i32 which is encodable in RV64.
let inst32 = InstructionData::BinaryImm {
let inst32 = InstructionData::BinaryImm64 {
opcode: Opcode::IaddImm,
arg: arg32,
imm: immediates::Imm64::new(10),
Expand Down Expand Up @@ -214,7 +214,7 @@ mod tests {
let arg32 = func.dfg.append_block_param(block, types::I32);

// Try to encode iadd_imm.i64 v1, -10.
let inst64 = InstructionData::BinaryImm {
let inst64 = InstructionData::BinaryImm64 {
opcode: Opcode::IaddImm,
arg: arg64,
imm: immediates::Imm64::new(-10),
Expand All @@ -224,7 +224,7 @@ mod tests {
assert!(isa.encode(&func, &inst64, types::I64).is_err());

// Try to encode iadd_imm.i64 v1, -10000.
let inst64_large = InstructionData::BinaryImm {
let inst64_large = InstructionData::BinaryImm64 {
opcode: Opcode::IaddImm,
arg: arg64,
imm: immediates::Imm64::new(-10000),
Expand All @@ -234,7 +234,7 @@ mod tests {
assert!(isa.encode(&func, &inst64_large, types::I64).is_err());

// Create an iadd_imm.i32 which is encodable in RV32.
let inst32 = InstructionData::BinaryImm {
let inst32 = InstructionData::BinaryImm64 {
opcode: Opcode::IaddImm,
arg: arg32,
imm: immediates::Imm64::new(10),
Expand Down
2 changes: 1 addition & 1 deletion cranelift/codegen/src/peepmatic.rs
Original file line number Diff line number Diff line change
Expand Up @@ -378,7 +378,7 @@ fn intcc_to_peepmatic(cc: IntCC) -> ConditionCode {

fn get_immediate(dfg: &DataFlowGraph, inst: Inst, i: usize) -> Part<ValueOrInst> {
return match dfg[inst] {
InstructionData::BinaryImm { imm, .. } if i == 0 => imm.into(),
InstructionData::BinaryImm64 { imm, .. } if i == 0 => imm.into(),
InstructionData::BranchIcmp { cond, .. } if i == 0 => intcc_to_peepmatic(cond).into(),
InstructionData::BranchInt { cond, .. } if i == 0 => intcc_to_peepmatic(cond).into(),
InstructionData::IntCompare { cond, .. } if i == 0 => intcc_to_peepmatic(cond).into(),
Expand Down
2 changes: 1 addition & 1 deletion cranelift/codegen/src/postopt.rs
Original file line number Diff line number Diff line change
Expand Up @@ -341,7 +341,7 @@ fn optimize_complex_addresses(pos: &mut EncCursor, inst: Inst, isa: &dyn TargetI
}
_ => panic!("Unsupported load or store opcode"),
},
InstructionData::BinaryImm {
InstructionData::BinaryImm64 {
opcode: Opcode::IaddImm,
arg,
imm,
Expand Down
Loading

0 comments on commit b02078a

Please sign in to comment.