예제 #1
0
// 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));
}
예제 #2
0
// 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));
}
예제 #3
0
void StackmapValue::appendSomeRegister(Value* value)
{
    append(ConstrainedValue(value, ValueRep::SomeRegister));
}
예제 #4
0
// 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));
}
예제 #5
0
// 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));
}