1579d7739c53a2707ad711a2d2cae46d7d782f06Jesse Wilson/* 2579d7739c53a2707ad711a2d2cae46d7d782f06Jesse Wilson * Copyright (C) 2011 The Android Open Source Project 3579d7739c53a2707ad711a2d2cae46d7d782f06Jesse Wilson * 4579d7739c53a2707ad711a2d2cae46d7d782f06Jesse Wilson * Licensed under the Apache License, Version 2.0 (the "License"); 5579d7739c53a2707ad711a2d2cae46d7d782f06Jesse Wilson * you may not use this file except in compliance with the License. 6579d7739c53a2707ad711a2d2cae46d7d782f06Jesse Wilson * You may obtain a copy of the License at 7579d7739c53a2707ad711a2d2cae46d7d782f06Jesse Wilson * 8579d7739c53a2707ad711a2d2cae46d7d782f06Jesse Wilson * http://www.apache.org/licenses/LICENSE-2.0 9579d7739c53a2707ad711a2d2cae46d7d782f06Jesse Wilson * 10579d7739c53a2707ad711a2d2cae46d7d782f06Jesse Wilson * Unless required by applicable law or agreed to in writing, software 11579d7739c53a2707ad711a2d2cae46d7d782f06Jesse Wilson * distributed under the License is distributed on an "AS IS" BASIS, 12579d7739c53a2707ad711a2d2cae46d7d782f06Jesse Wilson * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13579d7739c53a2707ad711a2d2cae46d7d782f06Jesse Wilson * See the License for the specific language governing permissions and 14579d7739c53a2707ad711a2d2cae46d7d782f06Jesse Wilson * limitations under the License. 15579d7739c53a2707ad711a2d2cae46d7d782f06Jesse Wilson */ 16579d7739c53a2707ad711a2d2cae46d7d782f06Jesse Wilson 17579d7739c53a2707ad711a2d2cae46d7d782f06Jesse Wilsonpackage com.google.dexmaker; 18579d7739c53a2707ad711a2d2cae46d7d782f06Jesse Wilson 19579d7739c53a2707ad711a2d2cae46d7d782f06Jesse Wilsonimport com.android.dx.rop.code.Rop; 20579d7739c53a2707ad711a2d2cae46d7d782f06Jesse Wilsonimport com.android.dx.rop.code.Rops; 21579d7739c53a2707ad711a2d2cae46d7d782f06Jesse Wilsonimport com.android.dx.rop.type.TypeList; 22579d7739c53a2707ad711a2d2cae46d7d782f06Jesse Wilson 23579d7739c53a2707ad711a2d2cae46d7d782f06Jesse Wilson/** 24579d7739c53a2707ad711a2d2cae46d7d782f06Jesse Wilson * A comparison between two values of the same type. 25579d7739c53a2707ad711a2d2cae46d7d782f06Jesse Wilson */ 26579d7739c53a2707ad711a2d2cae46d7d782f06Jesse Wilsonpublic enum Comparison { 27579d7739c53a2707ad711a2d2cae46d7d782f06Jesse Wilson 28d6c77efc0b187577dd7956070adfc7c335f65698Jesse Wilson /** {@code a < b}. Supports int only. */ 29579d7739c53a2707ad711a2d2cae46d7d782f06Jesse Wilson LT() { 30579d7739c53a2707ad711a2d2cae46d7d782f06Jesse Wilson @Override Rop rop(TypeList types) { 31579d7739c53a2707ad711a2d2cae46d7d782f06Jesse Wilson return Rops.opIfLt(types); 32579d7739c53a2707ad711a2d2cae46d7d782f06Jesse Wilson } 33579d7739c53a2707ad711a2d2cae46d7d782f06Jesse Wilson }, 34579d7739c53a2707ad711a2d2cae46d7d782f06Jesse Wilson 35d6c77efc0b187577dd7956070adfc7c335f65698Jesse Wilson /** {@code a <= b}. Supports int only. */ 36579d7739c53a2707ad711a2d2cae46d7d782f06Jesse Wilson LE() { 37579d7739c53a2707ad711a2d2cae46d7d782f06Jesse Wilson @Override Rop rop(TypeList types) { 38579d7739c53a2707ad711a2d2cae46d7d782f06Jesse Wilson return Rops.opIfLe(types); 39579d7739c53a2707ad711a2d2cae46d7d782f06Jesse Wilson } 40579d7739c53a2707ad711a2d2cae46d7d782f06Jesse Wilson }, 41579d7739c53a2707ad711a2d2cae46d7d782f06Jesse Wilson 42d6c77efc0b187577dd7956070adfc7c335f65698Jesse Wilson /** {@code a == b}. Supports int and reference types. */ 43579d7739c53a2707ad711a2d2cae46d7d782f06Jesse Wilson EQ() { 44579d7739c53a2707ad711a2d2cae46d7d782f06Jesse Wilson @Override Rop rop(TypeList types) { 45579d7739c53a2707ad711a2d2cae46d7d782f06Jesse Wilson return Rops.opIfEq(types); 46579d7739c53a2707ad711a2d2cae46d7d782f06Jesse Wilson } 47579d7739c53a2707ad711a2d2cae46d7d782f06Jesse Wilson }, 48579d7739c53a2707ad711a2d2cae46d7d782f06Jesse Wilson 49d6c77efc0b187577dd7956070adfc7c335f65698Jesse Wilson /** {@code a >= b}. Supports int only. */ 50579d7739c53a2707ad711a2d2cae46d7d782f06Jesse Wilson GE() { 51579d7739c53a2707ad711a2d2cae46d7d782f06Jesse Wilson @Override Rop rop(TypeList types) { 52579d7739c53a2707ad711a2d2cae46d7d782f06Jesse Wilson return Rops.opIfGe(types); 53579d7739c53a2707ad711a2d2cae46d7d782f06Jesse Wilson } 54579d7739c53a2707ad711a2d2cae46d7d782f06Jesse Wilson }, 55579d7739c53a2707ad711a2d2cae46d7d782f06Jesse Wilson 56d6c77efc0b187577dd7956070adfc7c335f65698Jesse Wilson /** {@code a > b}. Supports int only. */ 57579d7739c53a2707ad711a2d2cae46d7d782f06Jesse Wilson GT() { 58579d7739c53a2707ad711a2d2cae46d7d782f06Jesse Wilson @Override Rop rop(TypeList types) { 59579d7739c53a2707ad711a2d2cae46d7d782f06Jesse Wilson return Rops.opIfGt(types); 60579d7739c53a2707ad711a2d2cae46d7d782f06Jesse Wilson } 61579d7739c53a2707ad711a2d2cae46d7d782f06Jesse Wilson }, 62579d7739c53a2707ad711a2d2cae46d7d782f06Jesse Wilson 63d6c77efc0b187577dd7956070adfc7c335f65698Jesse Wilson /** {@code a != b}. Supports int and reference types. */ 64579d7739c53a2707ad711a2d2cae46d7d782f06Jesse Wilson NE() { 65579d7739c53a2707ad711a2d2cae46d7d782f06Jesse Wilson @Override Rop rop(TypeList types) { 66579d7739c53a2707ad711a2d2cae46d7d782f06Jesse Wilson return Rops.opIfNe(types); 67579d7739c53a2707ad711a2d2cae46d7d782f06Jesse Wilson } 68579d7739c53a2707ad711a2d2cae46d7d782f06Jesse Wilson }; 69579d7739c53a2707ad711a2d2cae46d7d782f06Jesse Wilson 70579d7739c53a2707ad711a2d2cae46d7d782f06Jesse Wilson abstract Rop rop(TypeList types); 71579d7739c53a2707ad711a2d2cae46d7d782f06Jesse Wilson} 72