Support compare for small primitives

This commit is contained in:
Mikhael Bogdanov
2018-06-01 14:29:00 +02:00
parent 340160de65
commit a4c4f048de
@@ -30,7 +30,13 @@ import java.lang.UnsupportedOperationException
class CompareTo : IntrinsicMethod() {
private fun genInvoke(type: Type?, v: InstructionAdapter) {
when (type) {
Type.INT_TYPE -> v.invokestatic(IntrinsicMethods.INTRINSICS_CLASS_NAME, "compare", "(II)I", false)
Type.CHAR_TYPE, Type.BYTE_TYPE, Type.SHORT_TYPE, Type.INT_TYPE ->
v.invokestatic(
IntrinsicMethods.INTRINSICS_CLASS_NAME,
"compare",
"(II)I",
false
)
Type.LONG_TYPE -> v.invokestatic(IntrinsicMethods.INTRINSICS_CLASS_NAME, "compare", "(JJ)I", false)
Type.FLOAT_TYPE -> v.invokestatic("java/lang/Float", "compare", "(FF)I", false)
Type.DOUBLE_TYPE -> v.invokestatic("java/lang/Double", "compare", "(DD)I", false)