• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1  /*
2   * Copyright (C) 2012 The Android Open Source Project
3   *
4   * Licensed under the Apache License, Version 2.0 (the "License");
5   * you may not use this file except in compliance with the License.
6   * You may obtain a copy of the License at
7   *
8   *      http://www.apache.org/licenses/LICENSE-2.0
9   *
10   * Unless required by applicable law or agreed to in writing, software
11   * distributed under the License is distributed on an "AS IS" BASIS,
12   * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13   * See the License for the specific language governing permissions and
14   * limitations under the License.
15   */
16  
17  #include <stdint.h>
18  
19  #include "base/macros.h"
20  
21  namespace art HIDDEN {
22  
23  #pragma clang diagnostic push
24  #pragma clang diagnostic ignored "-Wfloat-equal"
25  
CmplFloat(float a,float b)26  int CmplFloat(float a, float b) {
27    if (a == b) {
28      return 0;
29    } else if (a < b) {
30      return -1;
31    } else if (a > b) {
32      return 1;
33    }
34    return -1;
35  }
36  
CmpgFloat(float a,float b)37  int CmpgFloat(float a, float b) {
38    if (a == b) {
39      return 0;
40    } else if (a < b) {
41      return -1;
42    } else if (a > b) {
43      return 1;
44    }
45    return 1;
46  }
47  
CmpgDouble(double a,double b)48  int CmpgDouble(double a, double b) {
49    if (a == b) {
50      return 0;
51    } else if (a < b) {
52      return -1;
53    } else if (a > b) {
54      return 1;
55    }
56    return 1;
57  }
58  
CmplDouble(double a,double b)59  int CmplDouble(double a, double b) {
60    if (a == b) {
61      return 0;
62    } else if (a < b) {
63      return -1;
64    } else if (a > b) {
65      return 1;
66    }
67    return -1;
68  }
69  
70  #pragma clang diagnostic pop
71  
artLmul(int64_t a,int64_t b)72  extern "C" int64_t artLmul(int64_t a, int64_t b) {
73    return a * b;
74  }
75  
artLdiv(int64_t a,int64_t b)76  extern "C" int64_t artLdiv(int64_t a, int64_t b) {
77    return a / b;
78  }
79  
artLmod(int64_t a,int64_t b)80  extern "C" int64_t artLmod(int64_t a, int64_t b) {
81    return a % b;
82  }
83  
84  }  // namespace art
85