// Use this form for CheckAdd, CheckSub, and CheckMul. CheckValue::CheckValue(unsigned index, Opcode opcode, Origin origin, Value* left, Value* right) : StackmapValue(index, CheckedOpcode, opcode, left->type(), origin) { ASSERT(B3::isInt(type())); ASSERT(left->type() == right->type()); ASSERT(opcode == CheckAdd || opcode == CheckSub || opcode == CheckMul); append(ConstrainedValue(left, ValueRep::WarmAny)); append(ConstrainedValue(right, ValueRep::WarmAny)); }
// Use this form for CheckAdd, CheckSub, and CheckMul. CheckValue::CheckValue(Kind kind, Origin origin, Value* left, Value* right) : StackmapValue(CheckedOpcode, kind, left->type(), origin) { ASSERT(B3::isInt(type())); ASSERT(left->type() == right->type()); ASSERT(kind == CheckAdd || kind == CheckSub || kind == CheckMul); append(ConstrainedValue(left, ValueRep::WarmAny)); append(ConstrainedValue(right, ValueRep::WarmAny)); }
void StackmapValue::appendSomeRegister(Value* value) { append(ConstrainedValue(value, ValueRep::SomeRegister)); }
// Use this form for Check. CheckValue::CheckValue(unsigned index, Opcode opcode, Origin origin, Value* predicate) : StackmapValue(index, CheckedOpcode, opcode, Void, origin) { ASSERT(opcode == Check); append(ConstrainedValue(predicate, ValueRep::WarmAny)); }
// Use this form for Check. CheckValue::CheckValue(Kind kind, Origin origin, Value* predicate) : StackmapValue(CheckedOpcode, kind, Void, origin) { ASSERT(kind == Check); append(ConstrainedValue(predicate, ValueRep::WarmAny)); }