cleanup types of cmp
This commit is contained in:
@@ -172,10 +172,12 @@ public abstract class StackValue {
|
|||||||
|
|
||||||
private static class NumberCompare extends StackValue {
|
private static class NumberCompare extends StackValue {
|
||||||
private final IElementType opToken;
|
private final IElementType opToken;
|
||||||
|
private final Type operandType;
|
||||||
|
|
||||||
public NumberCompare(IElementType opToken, Type type) {
|
public NumberCompare(IElementType opToken, Type operandType) {
|
||||||
super(type);
|
super(Type.BOOLEAN_TYPE);
|
||||||
this.opToken = opToken;
|
this.opToken = opToken;
|
||||||
|
this.operandType = operandType;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -210,15 +212,15 @@ public abstract class StackValue {
|
|||||||
else {
|
else {
|
||||||
throw new UnsupportedOperationException("don't know how to generate this condjump");
|
throw new UnsupportedOperationException("don't know how to generate this condjump");
|
||||||
}
|
}
|
||||||
if (type == Type.FLOAT_TYPE || type == Type.DOUBLE_TYPE) {
|
if (operandType == Type.FLOAT_TYPE || operandType == Type.DOUBLE_TYPE) {
|
||||||
if (opToken == JetTokens.GT || opToken == JetTokens.GTEQ) {
|
if (opToken == JetTokens.GT || opToken == JetTokens.GTEQ) {
|
||||||
v.cmpg(type);
|
v.cmpg(operandType);
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
v.cmpl(type);
|
v.cmpl(operandType);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if (type == Type.LONG_TYPE) {
|
else if (operandType == Type.LONG_TYPE) {
|
||||||
v.lcmp();
|
v.lcmp();
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
|
|||||||
Reference in New Issue
Block a user