Support compare for small primitives
This commit is contained in:
+7
-1
@@ -30,7 +30,13 @@ import java.lang.UnsupportedOperationException
|
|||||||
class CompareTo : IntrinsicMethod() {
|
class CompareTo : IntrinsicMethod() {
|
||||||
private fun genInvoke(type: Type?, v: InstructionAdapter) {
|
private fun genInvoke(type: Type?, v: InstructionAdapter) {
|
||||||
when (type) {
|
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.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.FLOAT_TYPE -> v.invokestatic("java/lang/Float", "compare", "(FF)I", false)
|
||||||
Type.DOUBLE_TYPE -> v.invokestatic("java/lang/Double", "compare", "(DD)I", false)
|
Type.DOUBLE_TYPE -> v.invokestatic("java/lang/Double", "compare", "(DD)I", false)
|
||||||
|
|||||||
Reference in New Issue
Block a user