Comparison.java revision 579d7739c53a2707ad711a2d2cae46d7d782f061
15821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/* 25821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * Copyright (C) 2011 The Android Open Source Project 35821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * 45821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * Licensed under the Apache License, Version 2.0 (the "License"); 55821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * you may not use this file except in compliance with the License. 65821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * You may obtain a copy of the License at 75821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * 8eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch * http://www.apache.org/licenses/LICENSE-2.0 95821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * 105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * Unless required by applicable law or agreed to in writing, software 115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * distributed under the License is distributed on an "AS IS" BASIS, 125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * See the License for the specific language governing permissions and 145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * limitations under the License. 155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) */ 165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)package com.google.dexmaker; 185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)import com.android.dx.rop.code.Rop; 205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)import com.android.dx.rop.code.Rops; 21a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles)import com.android.dx.rop.type.TypeList; 225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/** 24a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) * A comparison between two values of the same type. 255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) */ 267d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles)public enum Comparison { 277d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) 287d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) /** {@code a < b} */ 297d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) LT() { 307d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) @Override Rop rop(TypeList types) { 317d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) return Rops.opIfLt(types); 327d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) } 337d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) }, 347d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) 357d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) /** {@code a <= b} */ 367d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) LE() { 377d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) @Override Rop rop(TypeList types) { 387d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) return Rops.opIfLe(types); 397d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) } 407d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) }, 417d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) 42ca12bfac764ba476d6cd062bf1dde12cc64c3f40Ben Murdoch /** {@code a == b} */ 43ca12bfac764ba476d6cd062bf1dde12cc64c3f40Ben Murdoch EQ() { 447d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) @Override Rop rop(TypeList types) { 457d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) return Rops.opIfEq(types); 467d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) } 477d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) }, 487d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) 497d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) /** {@code a >= b} */ 507d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) GE() { 517d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) @Override Rop rop(TypeList types) { 52ca12bfac764ba476d6cd062bf1dde12cc64c3f40Ben Murdoch return Rops.opIfGe(types); 537d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) } 545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) }, 555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) /** {@code a > b} */ 575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) GT() { 585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) @Override Rop rop(TypeList types) { 59ca12bfac764ba476d6cd062bf1dde12cc64c3f40Ben Murdoch return Rops.opIfGt(types); 60ca12bfac764ba476d6cd062bf1dde12cc64c3f40Ben Murdoch } 615821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) }, 62010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) 637d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) /** {@code a != b} */ 647d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) NE() { 65cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) @Override Rop rop(TypeList types) { 66cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) return Rops.opIfNe(types); 67cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) } 688bcbed890bc3ce4d7a057a8f32cab53fa534672eTorne (Richard Coles) }; 698bcbed890bc3ce4d7a057a8f32cab53fa534672eTorne (Richard Coles) 708bcbed890bc3ce4d7a057a8f32cab53fa534672eTorne (Richard Coles) abstract Rop rop(TypeList types); 715821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 725821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)