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)