mescc: Support gnu toolchain: libtcc1.
[mes.git] / lib / libtcc1.c
1 /* -*-comment-start: "//";comment-end:""-*-
2  * Mes --- Maxwell Equations of Software
3  * Copyright © 2017,2018 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
4  *
5  * This file is part of Mes.
6  *
7  * Mes is free software; you can redistribute it and/or modify it
8  * under the terms of the GNU General Public License as published by
9  * the Free Software Foundation; either version 3 of the License, or (at
10  * your option) any later version.
11  *
12  * Mes is distributed in the hope that it will be useful, but
13  * WITHOUT ANY WARRANTY; without even the implied warranty of
14  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
15  * GNU General Public License for more details.
16  *
17  * You should have received a copy of the GNU General Public License
18  * along with Mes.  If not, see <http://www.gnu.org/licenses/>.
19  */
20
21 double
22 __divdi3 (double a, double b)
23 {
24   static int stub = 0;
25   if (__mes_debug () && !stub)
26     eputs ("__divdi3 stub\n");
27   stub = 1;
28   return ((int)a / (int)b);
29 }
30
31 double
32 __moddi3 (double a, double b)
33 {
34   static int stub = 0;
35   if (__mes_debug () && !stub)
36     eputs ("__moddi3 stub\n");
37   stub = 1;
38   return ((int) a %(int)b);
39 }
40
41 unsigned long long
42 __udivdi3 (unsigned long long a, unsigned long long b)
43 {
44   static int stub = 0;
45   if (__mes_debug () && !stub)
46     eputs ("__udivdi3 stub\n");
47   stub = 1;
48   int ai = a;
49   int bi = b;
50   return ai / bi;
51 }
52
53 unsigned long long
54 __umoddi3 (unsigned long long a, unsigned long long b)
55 {
56   static int stub = 0;
57   if (__mes_debug () && !stub)
58     eputs ("__umoddi3 stub\n");
59   stub = 1;
60   int ai = a;
61   int bi = b;
62   return ai % bi;
63 }
64
65 unsigned long long
66 __lshrdi3 (unsigned long long a, int b)
67 {
68   static int stub = 0;
69   if (__mes_debug () && !stub)
70     eputs ("__lshrdi3 stub\n");
71   stub = 1;
72   return a >> b;
73 }
74
75 long long
76 __ashldi3 (long long a, int b)
77 {
78   static int stub = 0;
79   if (__mes_debug () && !stub)
80     eputs ("__ashldi3 stub\n");
81   stub = 1;
82   return a << b;
83 }
84
85 long long
86 __ashrdi3 (long long a, int b)
87 {
88   static int stub = 0;
89   if (__mes_debug () && !stub)
90     eputs ("__ashrdi3 stub\n");
91   stub = 1;
92   return a >> b;
93 }
94
95 long double
96 __floatundixf (unsigned long long a)
97 {
98   static int stub = 0;
99   if (__mes_debug () && !stub)
100     eputs ("__floatundixf stub\n");
101   stub = 1;
102   return 0;
103 }
104
105 unsigned long long
106 __fixunsxfdi (double a1)
107 {
108   static int stub = 0;
109   if (__mes_debug () && !stub)
110     eputs ("__fixunsxfdi stub\n");
111   stub = 1;
112   return 0;
113 }
114
115 unsigned long long
116 __fixdfdi (double a1)
117 {
118   static int stub = 0;
119   if (__mes_debug () && !stub)
120     eputs ("__fixdfdi stub\n");
121   stub = 1;
122   return 0;
123 }
124
125 unsigned long long
126 __fixxfdi (double a1)
127 {
128   static int stub = 0;
129   if (__mes_debug () && !stub)
130     eputs ("__fixxfdi stub\n");
131   stub = 1;
132   return 0;
133 }
134
135 unsigned long long
136 __fixsfdi (double a1)
137 {
138   static int stub = 0;
139   if (__mes_debug () && !stub)
140     eputs ("__fixsfdi stub\n");
141   stub = 1;
142   return 0;
143 }