aboutsummaryrefslogtreecommitdiff
path: root/gcc/expmed.c
diff options
context:
space:
mode:
authorJan Hubicka <jh@suse.cz>2007-09-04 16:03:31 +0200
committerJan Hubicka <hubicka@gcc.gnu.org>2007-09-04 14:03:31 +0000
commit8a33f10034d5c598395edc4ff0ae56e2bde7577e (patch)
treebc1e8971e3309ecdbd9ef277a0279ed5b1e1ce55 /gcc/expmed.c
parent6977374226b230fe6e6d9b5ce2615bea094cb0f1 (diff)
downloadgcc-8a33f10034d5c598395edc4ff0ae56e2bde7577e.zip
gcc-8a33f10034d5c598395edc4ff0ae56e2bde7577e.tar.gz
gcc-8a33f10034d5c598395edc4ff0ae56e2bde7577e.tar.bz2
optabs.c (debug_optab_libfunc): Update; make available to gdb.
* optabs.c (debug_optab_libfunc): Update; make available to gdb. (libfunc_entry): New structure. (libfunc_hash): New hashtable. (hash_libfunc): New function. (eq_libfunc): New function. (convert_optab_libfunc): New function. (optab_libfunc): New function. (expand_binop, sign_expand_binop, expand_twoval_binop_libfunc, expand_unop, prepare_cmp_insn, prepare_float_insn, gen_add2_insn, expand_float, expand_fix, new_optab, new_convert_optab): Update for new libfunc API. (init_libfunc, init_integral_libfuncs, init_floating_libfuncs, init_interclass_conv_libfuncs init_intraclass_conv_libfuncs): Remove; reorganize all logic to: (gen_libfunc, gen_int_libfunc, gen_fp_libfunc, gen_int_fp_libfunc, gen_intv_fp_libfunc, gen_interclass_conv_libfunc, gen_int_to_fp_conv_libfunc, gen_ufloat_conv_libfunc, gen_int_to_fp_nondecimal_conv_libfunc, gen_fp_to_int_conv_libfunc, gen_intraclass_conv_libfunc, gen_trunc_conv_libfunc, gen_extend_conv_libfunc): New. (init_one_libfunc): Revamp for hashtables. (set_conv_libfunc): Likewise. (init_optabs): Initialize hashtable; use lazy initialization where possible. * optabs.h (optab_handlers): Move out of GGC. (optab, convert_optab): Move out of GGC; add lazy gen info. (code_to_optab, convert_optab_table, optab_table): Move out of GGC. (optab_libfunc, convert_optab_libfunc): New. * builtins.c (expand_builtin_powi): Update for new API. * expr.c (convert_move): Likewise. * expmed.c (expand_divmod): Likewise. From-SVN: r128083
Diffstat (limited to 'gcc/expmed.c')
-rw-r--r--gcc/expmed.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/gcc/expmed.c b/gcc/expmed.c
index 84a709a..09a58de 100644
--- a/gcc/expmed.c
+++ b/gcc/expmed.c
@@ -3886,8 +3886,8 @@ expand_divmod (int rem_flag, enum tree_code code, enum machine_mode mode,
if (compute_mode == VOIDmode)
for (compute_mode = mode; compute_mode != VOIDmode;
compute_mode = GET_MODE_WIDER_MODE (compute_mode))
- if (optab_handler (optab1, compute_mode)->libfunc
- || optab_handler (optab2, compute_mode)->libfunc)
+ if (optab_libfunc (optab1, compute_mode)
+ || optab_libfunc (optab2, compute_mode))
break;
/* If we still couldn't find a mode, use MODE, but expand_binop will