* Merged in twisti-branch.
[cacao.git] / src / vm / jit / powerpc64 / arch.h
index 8552c96ae3038b603c2321a458a09b900735a01f..f82ccedc1b2731665b98d8ef6a22124b18b82ce7 100644 (file)
@@ -1,6 +1,6 @@
 /* src/vm/jit/powerpc64/arch.h - architecture defines for PowerPC64
 
-   Copyright (C) 1996-2005, 2006 R. Grafl, A. Krall, C. Kruegel,
+   Copyright (C) 1996-2005, 2006, 2007 R. Grafl, A. Krall, C. Kruegel,
    C. Oates, R. Obermaisser, M. Platter, M. Probst, S. Ring,
    E. Steiner, C. Thalinger, D. Thuernbeck, P. Tomsich, C. Ullrich,
    J. Wenninger, Institut f. Computersprachen - TU Wien
    Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
    02110-1301, USA.
 
-   Contact: cacao@cacaojvm.org
-
-   Authors: Christian Thalinger
-
-   Changes:
-
-   $Id: arch.h 6134 2006-12-07 20:14:40Z edwin $
+   $Id: arch.h 7452 2007-03-04 23:32:24Z twisti $
 
 */
 
@@ -36,6 +30,9 @@
 #ifndef _ARCH_H
 #define _ARCH_H
 
+#include "config.h"
+
+
 /*#define USE_FAKE_ATOMIC_INSTRUCTIONS         0 */
 
 /* define architecture features ***********************************************/
@@ -46,8 +43,6 @@
 
 #define SUPPORT_DIVISION                 1
 #define SUPPORT_LONG                     1
-#define SUPPORT_FLOAT                    1
-#define SUPPORT_DOUBLE                   1
 
 #define SUPPORT_FMOD                     0
 #define SUPPORT_FICVT                    0
 #define SUPPORT_CONST_STORE_ZERO_ONLY    0  /* on some risc machines we can   */
                                             /* only store REG_ZERO            */
 
+
+/* float **********************************************************************/
+
+#define SUPPORT_FLOAT                    1
+
+#if defined(ENABLE_SOFT_FLOAT_CMP)
+# define SUPPORT_FLOAT_CMP               0
+#else
+# define SUPPORT_FLOAT_CMP               1
+#endif
+
+
+/* double *********************************************************************/
+
+#define SUPPORT_DOUBLE                   1
+
+#if defined(ENABLE_SOFT_FLOAT_CMP)
+# define SUPPORT_DOUBLE_CMP              0
+#else
+# define SUPPORT_DOUBLE_CMP              1
+#endif
+
+
 #define SPECIALMEMUSE
 /* #define HAS_4BYTE_STACKSLOT */
 /* #define SUPPORT_COMBINE_INTEGER_REGISTERS */
 
+
+/* branches *******************************************************************/
+
+#define SUPPORT_BRANCH_CONDITIONAL_CONDITION_REGISTER       1
+#define SUPPORT_BRANCH_CONDITIONAL_ONE_INTEGER_REGISTER     0
+#define SUPPORT_BRANCH_CONDITIONAL_TWO_INTEGER_REGISTERS    0
+
+
+/* exceptions *****************************************************************/
+
+#define SUPPORT_HARDWARE_DIVIDE_BY_ZERO  0
+
+
 /* replacement ****************************************************************/
 
 #define REPLACEMENT_PATCH_SIZE           4 /* bytes */