Changes in / [678ac19:a588f2a]
- Files:
-
- 1 added
- 1 deleted
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
libcfa/prelude/builtins.c
r678ac19 ra588f2a 10 10 // Created On : Fri Jul 21 16:21:03 2017 11 11 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Mon Jul 13 21:10:02202013 // Update Count : 10 912 // Last Modified On : Sun Jul 12 10:40:57 2020 13 // Update Count : 107 14 14 // 15 15 … … 95 95 static inline forall( dtype DT ) DT * intptr( uintptr_t addr ) { return (DT *)addr; } 96 96 97 #if defined(__SIZEOF_INT128__)97 #if __SIZEOF_POINTER__ == 8 // 64-bit mode 98 98 // constructor for 128-bit numbers (all constants are unsigned as +/- are operators) 99 99 static inline void ?{}( unsigned int128 & this, unsigned long int h, unsigned long int l ) { 100 100 this = (unsigned int128)h << 64 | (unsigned int128)l; 101 101 } // ?{} 102 #endif // __SIZEOF_INT128__102 #endif // 64-bit mode 103 103 104 104 // exponentiation operator implementation -
libcfa/src/iostream.hfa
r678ac19 ra588f2a 10 10 // Created On : Wed May 27 17:56:53 2015 11 11 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Mon Jul 13 22:11:41202013 // Update Count : 34 412 // Last Modified On : Sat Jul 4 18:31:48 2020 13 // Update Count : 343 14 14 // 15 15 … … 216 216 IntegralFMTDecl( int128, 'd' ) 217 217 IntegralFMTDecl( unsigned int128, 'u' ) 218 #endif // __SIZEOF_INT128__218 #endif 219 219 220 220 // *********************************** floating point *********************************** -
src/Parser/ExpressionNode.cc
r678ac19 ra588f2a 10 10 // Created On : Sat May 16 13:17:07 2015 11 11 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Mon Jul 13 21:12:02202013 // Update Count : 104 312 // Last Modified On : Sun Jul 12 11:55:44 2020 13 // Update Count : 1040 14 14 // 15 15 … … 186 186 // Cannot be just "0"/"1"; sscanf stops at the suffix, if any; value goes over the wall => always generate 187 187 188 #if ! defined(__SIZEOF_INT128__)188 #if __SIZEOF_POINTER__ == 4 // 32-bit mode 189 189 if ( type == 5 ) SemanticError( yylloc, "int128 constant is not supported on this target " + str ); 190 #endif // ! __SIZEOF_INT128__190 #endif // 32-bit mode 191 191 192 192 if ( str[0] == '0' ) { // radix character ? … … 219 219 if ( type < 5 ) { // not L128 ? 220 220 sscanf( (char *)str.c_str(), "%llo", &v ); 221 #if defined(__SIZEOF_INT128__)221 #if __SIZEOF_POINTER__ == 8 // 64-bit mode 222 222 } else { // octal int128 constant 223 223 unsigned int len = str.length(); … … 245 245 str = buf; 246 246 } // if 247 #endif // __SIZEOF_INT128__247 #endif // 64-bit mode 248 248 } // if 249 249 //printf( "%#llo %llu\n", v, v ); … … 252 252 if ( type < 5 ) { // not L128 ? 253 253 sscanf( (char *)str.c_str(), "%llu", &v ); 254 #if defined(__SIZEOF_INT128__)254 #if __SIZEOF_POINTER__ == 8 // 64-bit mode 255 255 } else { // decimal int128 constant 256 256 #define P10_UINT64 10'000'000'000'000'000'000ULL // 19 zeroes … … 280 280 str = buf; 281 281 } // if 282 #endif // __SIZEOF_INT128__282 #endif // 64-bit mode 283 283 } // if 284 284 //printf( "%llu\n", v );
Note: See TracChangeset
for help on using the changeset viewer.