OPCODE_IS_NAN
This commit is contained in:
@@ -1362,6 +1362,13 @@ Value* HIRBuilder::IsFalse(Value* value) {
|
||||
return i->dest;
|
||||
}
|
||||
|
||||
Value* HIRBuilder::IsNan(Value* value) {
|
||||
Instr* i = AppendInstr(OPCODE_IS_NAN_info, 0, AllocValue(INT8_TYPE));
|
||||
i->set_src1(value);
|
||||
i->src2.value = i->src3.value = NULL;
|
||||
return i->dest;
|
||||
}
|
||||
|
||||
Value* HIRBuilder::CompareXX(const OpcodeInfo& opcode, Value* value1,
|
||||
Value* value2) {
|
||||
ASSERT_TYPES_EQUAL(value1, value2);
|
||||
|
||||
@@ -162,6 +162,7 @@ class HIRBuilder {
|
||||
Value* Select(Value* cond, Value* value1, Value* value2);
|
||||
Value* IsTrue(Value* value);
|
||||
Value* IsFalse(Value* value);
|
||||
Value* IsNan(Value* value);
|
||||
Value* CompareEQ(Value* value1, Value* value2);
|
||||
Value* CompareNE(Value* value1, Value* value2);
|
||||
Value* CompareSLT(Value* value1, Value* value2);
|
||||
|
||||
@@ -164,6 +164,7 @@ enum Opcode {
|
||||
OPCODE_SELECT,
|
||||
OPCODE_IS_TRUE,
|
||||
OPCODE_IS_FALSE,
|
||||
OPCODE_IS_NAN,
|
||||
OPCODE_COMPARE_EQ,
|
||||
OPCODE_COMPARE_NE,
|
||||
OPCODE_COMPARE_SLT,
|
||||
|
||||
@@ -303,6 +303,12 @@ DEFINE_OPCODE(
|
||||
OPCODE_SIG_V_V,
|
||||
0)
|
||||
|
||||
DEFINE_OPCODE(
|
||||
OPCODE_IS_NAN,
|
||||
"is_nan",
|
||||
OPCODE_SIG_V_V,
|
||||
0)
|
||||
|
||||
DEFINE_OPCODE(
|
||||
OPCODE_COMPARE_EQ,
|
||||
"compare_eq",
|
||||
|
||||
Reference in New Issue
Block a user