* Removed all Id tags.
[cacao.git] / src / vm / jit / sparc64 / arch.h
index fa153e22975bb59877bf7a5c0095749d900e2ad3..93581b3630ca15e43ec3f61ddd33dee93a147dbb 100644 (file)
@@ -1,6 +1,6 @@
 /* src/vm/jit/sparc64/arch.h - architecture defines for Sparc64
 
-   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
-            Alexander Jordan
-
-   $Id: arch.h 5081 2006-07-06 13:59:01Z tbfg $
-
 */
 
 
 #ifndef _ARCH_H
 #define _ARCH_H
 
+#include "config.h"
+
+
 /* define architecture features ***********************************************/
 
 #define U8_AVAILABLE                     1
 
-/*  #define USEBUILTINTABLE */
-
-#define SUPPORT_DIVISION                 0
+#define SUPPORT_DIVISION                 1
 #define SUPPORT_LONG                     1
-#define SUPPORT_FLOAT                    1
-#define SUPPORT_DOUBLE                   1
 
 #define SUPPORT_I2F                      1
 #define SUPPORT_I2D                      1
 #define SUPPORT_L2F                      1
 #define SUPPORT_L2D                      1
 
-#define SUPPORT_F2I                      0
-#define SUPPORT_F2L                      0
-#define SUPPORT_D2I                      0
-#define SUPPORT_D2L                      0
+#define SUPPORT_F2I                      1
+#define SUPPORT_F2L                      1
+#define SUPPORT_D2I                      1
+#define SUPPORT_D2L                      1
 
 #define SUPPORT_LONG_ADD                 1
 #define SUPPORT_LONG_CMP                 1
@@ -62,7 +54,7 @@
 #define SUPPORT_LONG_LOGICAL             1
 #define SUPPORT_LONG_SHIFT               1
 #define SUPPORT_LONG_MUL                 1
-#define SUPPORT_LONG_DIV                 0
+#define SUPPORT_LONG_DIV                 1
 
 #define SUPPORT_CONST_LOGICAL            1  /* AND, OR, XOR with immediates   */
 #define SUPPORT_CONST_MUL                1  /* mutiply with immediate         */
                                             /* 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
+
+
+/* branches *******************************************************************/
+
+#define SUPPORT_BRANCH_CONDITIONAL_CONDITION_REGISTER       1
+#define SUPPORT_BRANCH_CONDITIONAL_ONE_INTEGER_REGISTER     1
+#define SUPPORT_BRANCH_CONDITIONAL_TWO_INTEGER_REGISTERS    0
+#define SUPPORT_BRANCH_CONDITIONAL_UNSIGNED_CONDITIONS      1
+
+
 /* exceptions *****************************************************************/
 
 #define SUPPORT_HARDWARE_DIVIDE_BY_ZERO  0
 /* replacement ****************************************************************/
 
 #define REPLACEMENT_PATCH_SIZE           4 /* bytes */
-#define REPLACEMENT_STUB_SIZE            5 /* words */ /* XXX adapt for sparc64 */
 
 #endif /* _ARCH_H */