Changeset 88d5c1e in mainline for uspace/lib/softint
- Timestamp:
- 2012-04-07T17:55:10Z (13 years ago)
- Branches:
- lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
- Children:
- 41455a22
- Parents:
- 8bcd727
- Location:
- uspace/lib/softint
- Files:
-
- 6 edited
Legend:
- Unmodified
- Added
- Removed
-
uspace/lib/softint/generic/division.c
r8bcd727 r88d5c1e 188 188 } 189 189 190 int __divmodsi3(int a, int b, int *c) 191 { 192 unsigned int rem; 193 int result = (int) divandmod32(ABSVAL(a), ABSVAL(b), &rem); 194 195 if (SGN(a) == SGN(b)) { 196 *c = rem; 197 return result; 198 } 199 200 *c = -rem; 201 return -result; 202 } 203 190 204 unsigned int __udivmodsi3(unsigned int a, unsigned int b, 191 205 unsigned int *c) … … 194 208 } 195 209 210 long long __divmoddi3(long long a, long long b, long long *c) 211 { 212 unsigned long long rem; 213 long long result = (int) divandmod64(ABSVAL(a), ABSVAL(b), &rem); 214 215 if (SGN(a) == SGN(b)) { 216 *c = rem; 217 return result; 218 } 219 220 *c = -rem; 221 return -result; 222 } 223 196 224 unsigned long long __udivmoddi3(unsigned long long a, unsigned long long b, 197 225 unsigned long long *c) -
uspace/lib/softint/include/comparison.h
r8bcd727 r88d5c1e 38 38 39 39 /* Signed comparison (a < b => 0, a == b => 1, a > b => 2). */ 40 int __cmpdi2 (long long a, long long b);40 extern int __cmpdi2(long long, long long); 41 41 42 42 /* Unsigned comparison (a < b => 0, a == b => 1, a > b => 2). */ 43 int __ucmpdi2 (unsigned long long a, unsigned long long b);43 extern int __ucmpdi2(unsigned long long, unsigned long long); 44 44 45 45 #endif -
uspace/lib/softint/include/division.h
r8bcd727 r88d5c1e 29 29 /** @addtogroup softint 30 30 * @{ 31 */ 31 */ 32 32 /** 33 33 * @file … … 49 49 extern unsigned long long __umoddi3(unsigned long long, unsigned long long); 50 50 51 extern int __divmodsi3(int, int, int *); 51 52 extern unsigned int __udivmodsi3(unsigned int, unsigned int, unsigned int *); 53 54 extern long long __divmoddi3(long long, long long, long long *); 52 55 extern unsigned long long __udivmoddi3(unsigned long long, unsigned long long, 53 56 unsigned long long *); -
uspace/lib/softint/include/lltype.h
r8bcd727 r88d5c1e 39 39 #include <stdint.h> 40 40 41 #define HALF_BIT_CNT (sizeof(int32_t) * sizeof(char))42 #define WHOLE_BIT_CNT (sizeof(int64_t) * sizeof(char))41 #define HALF_BIT_CNT (sizeof(int32_t) * sizeof(char)) 42 #define WHOLE_BIT_CNT (sizeof(int64_t) * sizeof(char)) 43 43 44 44 #ifdef __BE__ -
uspace/lib/softint/include/multiplication.h
r8bcd727 r88d5c1e 29 29 /** @addtogroup softint 30 30 * @{ 31 */ 31 */ 32 32 /** 33 33 * @file … … 38 38 39 39 /* 64 bit multiplication */ 40 long long __muldi3(long long a, long long b);40 extern long long __muldi3(long long, long long); 41 41 42 42 #endif -
uspace/lib/softint/include/shift.h
r8bcd727 r88d5c1e 38 38 39 39 /* Arithmetic/logical shift left. */ 40 long long __ashldi3 (long long val, int shift);40 extern long long __ashldi3(long long, int); 41 41 42 42 /* Arithmetic shift right. */ 43 long long __ashrdi3 (long long val, int shift);43 extern long long __ashrdi3(long long, int); 44 44 45 45 /* Logical shift right. */ 46 long long __lshrdi3 (long long val, int shift);46 extern long long __lshrdi3(long long, int); 47 47 48 48 #endif
Note:
See TracChangeset
for help on using the changeset viewer.