Rebase
[platform/upstream/libffi.git] / src / arm / ffitarget.h
index eede79f..ce25b23 100644 (file)
@@ -1,5 +1,7 @@
 /* -----------------------------------------------------------------*-C-*-
    ffitarget.h - Copyright (c) 1996-2003  Red Hat, Inc.
+                 Copyright (c) 2010 CodeSourcery
+
    Target configuration macros for ARM.
 
    Permission is hereby granted, free of charge, to any person obtaining
@@ -34,11 +36,25 @@ typedef signed long            ffi_sarg;
 typedef enum ffi_abi {
   FFI_FIRST_ABI = 0,
   FFI_SYSV,
+  FFI_VFP,
   FFI_LAST_ABI,
-  FFI_DEFAULT_ABI = FFI_SYSV
+#ifdef __ARM_PCS_VFP
+  FFI_DEFAULT_ABI = FFI_VFP,
+#else
+  FFI_DEFAULT_ABI = FFI_SYSV,
+#endif
 } ffi_abi;
 #endif
 
+#define FFI_EXTRA_CIF_FIELDS                   \
+  int vfp_used;                                        \
+  short vfp_reg_free, vfp_nargs;               \
+  signed char vfp_args[16]                     \
+
+/* Internally used. */
+#define FFI_TYPE_STRUCT_VFP_FLOAT  (FFI_TYPE_LAST + 1)
+#define FFI_TYPE_STRUCT_VFP_DOUBLE (FFI_TYPE_LAST + 2)
+
 /* ---- Definitions for closures ----------------------------------------- */
 
 #define FFI_CLOSURES 1