Use fast compare for stable obj temps

This commit is contained in:
sergeych committed 2026-02-16 17:35:08 +03:00
1 parent 44f9573eec
commit e8f5c9eaf4
2 files changed
+9 -8

No files matched your search

@@ -1683,12 +1683,12 @@ class BytecodeCompiler(
val left = ensureObjSlot(a)
val right = ensureObjSlot(b)
val opcode = when {
isExactNonNullSlotClass(left.slot, ObjString.type) &&
isExactNonNullSlotClass(right.slot, ObjString.type) -> stringOp
isExactNonNullSlotClass(left.slot, ObjInt.type) &&
isExactNonNullSlotClass(right.slot, ObjInt.type) -> intOp
isExactNonNullSlotClass(left.slot, ObjReal.type) &&
isExactNonNullSlotClass(right.slot, ObjReal.type) -> realOp
isExactNonNullSlotClassOrTemp(left.slot, ObjString.type) &&
isExactNonNullSlotClassOrTemp(right.slot, ObjString.type) -> stringOp
isExactNonNullSlotClassOrTemp(left.slot, ObjInt.type) &&
isExactNonNullSlotClassOrTemp(right.slot, ObjInt.type) -> intOp
isExactNonNullSlotClassOrTemp(left.slot, ObjReal.type) &&
isExactNonNullSlotClassOrTemp(right.slot, ObjReal.type) -> realOp
else -> objOp
}
builder.emit(opcode, left.slot, right.slot, out)