aboutsummaryrefslogtreecommitdiff
path: root/gcc/java/decl.c
diff options
context:
space:
mode:
authorAndrew Haley <aph@cygnus.com>1999-07-21 14:28:33 +0000
committerAndrew Haley <aph@gcc.gnu.org>1999-07-21 14:28:33 +0000
commitaa4759c11cc78443455b69fca236c24ff89c91a1 (patch)
tree7a86e6410656ef434107be5353da306f7adf35c0 /gcc/java/decl.c
parent9c1ce4332e0bfc9289296fde205af0eb3a21e50b (diff)
downloadgcc-aa4759c11cc78443455b69fca236c24ff89c91a1.zip
gcc-aa4759c11cc78443455b69fca236c24ff89c91a1.tar.gz
gcc-aa4759c11cc78443455b69fca236c24ff89c91a1.tar.bz2
lang.c (flag_use_divide_subroutine): New variable.
1999-07-15 Andrew Haley <aph@cygnus.com> * lang.c (flag_use_divide_subroutine): New variable. * typeck.c: (convert_ieee_real_to_integer): Bounds check fp-to-integer conversion. (convert): Call convert_ieee_real_to_integer when flag_fast_math is not set. * expr.c (build_java_soft_divmod): New function. (build_java_binop): Call build_java_soft_divmod if flag_use_divide_subroutine is set. * decl.c: soft_idiv_node, soft_irem_node, soft_ldiv_node, tree soft_lrem_node: new builtin functions. (init_decl_processing) Initialize the new builtins. * java-tree.h soft_idiv_node, soft_irem_node, soft_ldiv_node, tree soft_lrem_node: new builtin functions. (build_java_soft_divmod): New function. * parse.y: Call build_java_soft_divmod if flag_use_divide_subroutine is set. From-SVN: r28208
Diffstat (limited to 'gcc/java/decl.c')
-rw-r--r--gcc/java/decl.c25
1 files changed, 25 insertions, 0 deletions
diff --git a/gcc/java/decl.c b/gcc/java/decl.c
index de03e5fd..6779747 100644
--- a/gcc/java/decl.c
+++ b/gcc/java/decl.c
@@ -365,6 +365,11 @@ tree soft_monitorexit_node;
tree soft_lookupinterfacemethod_node;
tree soft_fmod_node;
tree soft_exceptioninfo_call_node;
+tree soft_idiv_node;
+tree soft_irem_node;
+tree soft_ldiv_node;
+tree soft_lrem_node;
+
/* Build (and pushdecl) a "promoted type" for all standard
types shorter than int. */
@@ -812,6 +817,26 @@ init_decl_processing ()
BUILT_IN_FMOD, "fmodf");
#endif
+ soft_idiv_node
+ = builtin_function ("_Jv_divI",
+ build_function_type (int_type_node, t),
+ NOT_BUILT_IN, NULL_PTR);
+
+ soft_irem_node
+ = builtin_function ("_Jv_remI",
+ build_function_type (int_type_node, t),
+ NOT_BUILT_IN, NULL_PTR);
+
+ soft_ldiv_node
+ = builtin_function ("_Jv_divJ",
+ build_function_type (long_type_node, t),
+ NOT_BUILT_IN, NULL_PTR);
+
+ soft_lrem_node
+ = builtin_function ("_Jv_remJ",
+ build_function_type (long_type_node, t),
+ NOT_BUILT_IN, NULL_PTR);
+
init_class_processing ();
}