comparison dyncall/dyncall_macros.h @ 302:d55f9d508074

- mips softfloat support for o32 callconv (calls and callbacks, little and big endian) - cleanup of some mips files, removed unnecessary file, renamings.. - doc/manual cleanups, changelog entry
author Tassilo Philipp
date Mon, 21 May 2018 02:48:12 +0200
parents f5577f6bf97a
children 451299d50c1a
comparison
equal deleted inserted replaced
301:74948b02cfa0 302:d55f9d508074
187 # define DC__Arch_MIPS64 187 # define DC__Arch_MIPS64
188 #elif defined(_M_MRX000) || defined(__mips__) || defined(__mips) || defined(_mips) 188 #elif defined(_M_MRX000) || defined(__mips__) || defined(__mips) || defined(_mips)
189 # define DC__Arch_MIPS 189 # define DC__Arch_MIPS
190 #elif defined(__arm__) 190 #elif defined(__arm__)
191 # define DC__Arch_ARM 191 # define DC__Arch_ARM
192 #elif defined(__aarch64__) 192 #elif defined(__aarch64__) || defined(__arm64) || defined(__arm64__)
193 # define DC__Arch_ARM64 193 # define DC__Arch_ARM64
194 #elif defined(__sh__) 194 #elif defined(__sh__)
195 # define DC__Arch_SuperH 195 # define DC__Arch_SuperH
196 #elif defined(__sparc) || defined(__sparc__) 196 #elif defined(__sparc) || defined(__sparc__)
197 # if defined(__sparcv9) || defined(__sparc_v9__) || defined(__sparc64__) || defined(__arch64__) 197 # if defined(__sparcv9) || defined(__sparc_v9__) || defined(__sparc64__) || defined(__arch64__)
236 # define DC__ABI_ARM_OABI 236 # define DC__ABI_ARM_OABI
237 # endif 237 # endif
238 #endif /* ARM */ 238 #endif /* ARM */
239 239
240 #if defined(DC__Arch_MIPS) || defined(DC__Arch_MIPS64) 240 #if defined(DC__Arch_MIPS) || defined(DC__Arch_MIPS64)
241 # if defined(_ABIO32) || defined(_MIPS_ARCH_MIPS1) || defined(_MIPS_ARCH_MIPS2) 241 # if defined(_ABIO32) || defined(__mips_o32) || defined(_MIPS_ARCH_MIPS1) || defined(_MIPS_ARCH_MIPS2)
242 # define DC__ABI_MIPS_O32 242 # define DC__ABI_MIPS_O32
243 # elif defined(_ABI64) || defined(_mips_n64) 243 # elif defined(_ABI64) || defined(__mips_n64)
244 # define DC__ABI_MIPS_N64 244 # define DC__ABI_MIPS_N64
245 # elif defined(_ABIN32) 245 # elif defined(_ABIN32)
246 # define DC__ABI_MIPS_N32 246 # define DC__ABI_MIPS_N32
247 # else 247 # else
248 # define DC__ABI_MIPS_EABI 248 # define DC__ABI_MIPS_EABI
249 # endif 249 # endif
250 /*@@@implement/support: __mips_hard_float*/ 250 /* Set extra flag to know if FP hardware ABI, default to yes, if unsure */
251 # if (defined(__mips_hard_float) && (__mips_hard_float == 1)) || !defined(__mips_soft_float) || (__mips_soft_float != 1)
252 # define DC__ABI_HARDFLOAT /* @@@ make this general for all archs? */
253 # else
254 # define DC__ABI_SOFTFLOAT
255 # endif
251 #endif /* MIPS */ 256 #endif /* MIPS */
252 257
253 #if defined(DC__Arch_PPC64) 258 #if defined(DC__Arch_PPC64)
254 # if defined(_CALL_ELF) 259 # if defined(_CALL_ELF)
255 # define DC__ABI_PPC64_ELF_V _CALL_ELF 260 # define DC__ABI_PPC64_ELF_V _CALL_ELF
264 # define DC__Endian_LITTLE 269 # define DC__Endian_LITTLE
265 #elif defined(DC__Arch_Sparc) /* always purely big until v9 */ 270 #elif defined(DC__Arch_Sparc) /* always purely big until v9 */
266 # define DC__Endian_BIG 271 # define DC__Endian_BIG
267 #else /* all others are bi-endian */ 272 #else /* all others are bi-endian */
268 /* @@@check flags used on following bi-endianness archs: 273 /* @@@check flags used on following bi-endianness archs:
269 DC__Arch_ARM
270 DC__Arch_ARM64
271 DC__Arch_Itanium 274 DC__Arch_Itanium
272 DC__Arch_PPC32 275 DC__Arch_PPC32
273 DC__Arch_PPC64 276 DC__Arch_PPC64
274 DC__Arch_SuperH 277 DC__Arch_SuperH
275 */ 278 */
276 # if (defined(DC__Arch_PPC64) && (DC__ABI_PPC64_ELF_V == 1)) || defined(_BIG_ENDIAN) || defined(MIPSEB) || defined(_MIPSEB) || defined(__MIPSEB) || defined(__MIPSEB__) 279 # if (defined(DC__Arch_PPC64) && (DC__ABI_PPC64_ELF_V == 1)) || defined(_BIG_ENDIAN) || defined(__BIG_ENDIAN__) || defined(MIPSEB) || defined(_MIPSEB) || defined(__MIPSEB) || defined(__MIPSEB__) || defined(__ARMEB__) || defined(__AARCH64EB__)
277 # define DC__Endian_BIG 280 # define DC__Endian_BIG
278 # elif (defined(DC__Arch_PPC64) && (DC__ABI_PPC64_ELF_V == 2)) || defined(_LITTLE_ENDIAN) || defined(MIPSEL) || defined(_MIPSEL) || defined(__MIPSEL) || defined(__MIPSEL__) 281 # elif (defined(DC__Arch_PPC64) && (DC__ABI_PPC64_ELF_V == 2)) || defined(_LITTLE_ENDIAN) || defined(__LITTLE_ENDIAN__) || defined(MIPSEL) || defined(_MIPSEL) || defined(__MIPSEL) || defined(__MIPSEL__) || defined(__ARMEL__) || defined(__AARCH64EL__)
279 # define DC__Endian_LITTLE 282 # define DC__Endian_LITTLE
280 # elif defined(DC__Arch_Sparc64) && !defined(__BYTE_ORDER__) /* Sparc64 default is big-endian, except if explicitly defined */ 283 # elif defined(DC__Arch_Sparc64) && !defined(__BYTE_ORDER__) /* Sparc64 default is big-endian, except if explicitly defined */
281 # define DC__Endian_BIG 284 # define DC__Endian_BIG
282 # elif defined(__BYTE_ORDER__) /* explicitly set */ 285 # elif defined(__BYTE_ORDER__) /* explicitly set */
283 # if defined(__ORDER_BIG_ENDIAN__) && (__BYTE_ORDER__ == __ORDER_BIG_ENDIAN__) 286 # if defined(__ORDER_BIG_ENDIAN__) && (__BYTE_ORDER__ == __ORDER_BIG_ENDIAN__)