diff options
author | Andrew Haley <aph@cygnus.com> | 1999-07-21 14:28:33 +0000 |
---|---|---|
committer | Andrew Haley <aph@gcc.gnu.org> | 1999-07-21 14:28:33 +0000 |
commit | aa4759c11cc78443455b69fca236c24ff89c91a1 (patch) | |
tree | 7a86e6410656ef434107be5353da306f7adf35c0 /gcc/java/decl.c | |
parent | 9c1ce4332e0bfc9289296fde205af0eb3a21e50b (diff) | |
download | gcc-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.c | 25 |
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 (); } |