00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023 #ifndef BRANCH_COST
00024 #define BRANCH_COST 1
00025 #endif
00026
00027
00028
00029
00030
00031
00032 #define QUEUED_VAR(P) XEXP (P, 0)
00033
00034
00035
00036 #define QUEUED_INSN(P) XEXP (P, 1)
00037
00038
00039 #define QUEUED_COPY(P) XEXP (P, 2)
00040
00041
00042 #define QUEUED_BODY(P) XEXP (P, 3)
00043
00044 #define QUEUED_NEXT(P) XEXP (P, 4)
00045
00046
00047
00048
00049
00050
00051
00052
00053
00054
00055
00056
00057 enum expand_modifier {EXPAND_NORMAL = 0, EXPAND_STACK_PARM = 2, EXPAND_SUM,
00058 EXPAND_CONST_ADDRESS, EXPAND_INITIALIZER, EXPAND_WRITE,
00059 EXPAND_MEMORY};
00060
00061
00062
00063 #define NO_DEFER_POP (inhibit_defer_pop += 1)
00064
00065
00066
00067 #define OK_DEFER_POP (inhibit_defer_pop -= 1)
00068
00069 #ifdef TREE_CODE
00070
00071
00072
00073
00074
00075 struct args_size
00076 {
00077 HOST_WIDE_INT constant;
00078 tree var;
00079 };
00080 #endif
00081
00082
00083
00084 #define ADD_PARM_SIZE(TO, INC) \
00085 do { \
00086 tree inc = (INC); \
00087 if (host_integerp (inc, 0)) \
00088 (TO).constant += tree_low_cst (inc, 0); \
00089 else if ((TO).var == 0) \
00090 (TO).var = convert (ssizetype, inc); \
00091 else \
00092 (TO).var = size_binop (PLUS_EXPR, (TO).var, \
00093 convert (ssizetype, inc)); \
00094 } while (0)
00095
00096 #define SUB_PARM_SIZE(TO, DEC) \
00097 do { \
00098 tree dec = (DEC); \
00099 if (host_integerp (dec, 0)) \
00100 (TO).constant -= tree_low_cst (dec, 0); \
00101 else if ((TO).var == 0) \
00102 (TO).var = size_binop (MINUS_EXPR, ssize_int (0), \
00103 convert (ssizetype, dec)); \
00104 else \
00105 (TO).var = size_binop (MINUS_EXPR, (TO).var, \
00106 convert (ssizetype, dec)); \
00107 } while (0)
00108
00109
00110
00111 #define ARGS_SIZE_TREE(SIZE) \
00112 ((SIZE).var == 0 ? ssize_int ((SIZE).constant) \
00113 : size_binop (PLUS_EXPR, convert (ssizetype, (SIZE).var), \
00114 ssize_int ((SIZE).constant)))
00115
00116
00117 #define ARGS_SIZE_RTX(SIZE) \
00118 ((SIZE).var == 0 ? GEN_INT ((SIZE).constant) \
00119 : expand_expr (ARGS_SIZE_TREE (SIZE), NULL_RTX, VOIDmode, 0))
00120
00121
00122
00123
00124
00125 enum direction {none, upward, downward};
00126
00127 #ifndef FUNCTION_ARG_PADDING
00128 #define FUNCTION_ARG_PADDING(MODE, TYPE) \
00129 (! BYTES_BIG_ENDIAN \
00130 ? upward \
00131 : (((MODE) == BLKmode \
00132 ? ((TYPE) && TREE_CODE (TYPE_SIZE (TYPE)) == INTEGER_CST \
00133 && int_size_in_bytes (TYPE) < (PARM_BOUNDARY / BITS_PER_UNIT)) \
00134 : GET_MODE_BITSIZE (MODE) < PARM_BOUNDARY) \
00135 ? downward : upward))
00136 #endif
00137
00138
00139
00140
00141
00142 #ifndef FUNCTION_ARG_BOUNDARY
00143 #define FUNCTION_ARG_BOUNDARY(MODE, TYPE) PARM_BOUNDARY
00144 #endif
00145
00146
00147 #ifndef STRICT_ARGUMENT_NAMING
00148 #define STRICT_ARGUMENT_NAMING 0
00149 #endif
00150
00151
00152 #ifdef SETUP_INCOMING_VARARGS
00153 #ifndef PRETEND_OUTGOING_VARARGS_NAMED
00154 #define PRETEND_OUTGOING_VARARGS_NAMED 1
00155 #endif
00156 #else
00157
00158
00159 #define PRETEND_OUTGOING_VARARGS_NAMED 0
00160 #endif
00161
00162
00163
00164
00165
00166
00167
00168
00169
00170
00171
00172
00173
00174
00175
00176
00177
00178 #ifndef MUST_PASS_IN_STACK
00179 #define MUST_PASS_IN_STACK(MODE,TYPE) \
00180 ((TYPE) != 0 \
00181 && (TREE_CODE (TYPE_SIZE (TYPE)) != INTEGER_CST \
00182 || TREE_ADDRESSABLE (TYPE) \
00183 || ((MODE) == BLKmode \
00184 && ! ((TYPE) != 0 && TREE_CODE (TYPE_SIZE (TYPE)) == INTEGER_CST \
00185 && 0 == (int_size_in_bytes (TYPE) \
00186 % (PARM_BOUNDARY / BITS_PER_UNIT))) \
00187 && (FUNCTION_ARG_PADDING (MODE, TYPE) \
00188 == (BYTES_BIG_ENDIAN ? upward : downward)))))
00189 #endif
00190
00191
00192
00193
00194 #ifndef RETURN_IN_MEMORY
00195 #define RETURN_IN_MEMORY(TYPE) (TYPE_MODE (TYPE) == BLKmode)
00196 #endif
00197
00198
00199
00200
00201 #ifndef STACK_SAVEAREA_MODE
00202 #define STACK_SAVEAREA_MODE(LEVEL) Pmode
00203 #endif
00204
00205
00206
00207
00208 #ifndef STACK_SIZE_MODE
00209 #define STACK_SIZE_MODE word_mode
00210 #endif
00211
00212
00213
00214 #ifndef STACK_CHECK_BUILTIN
00215 #define STACK_CHECK_BUILTIN 0
00216 #endif
00217
00218
00219 #ifndef STACK_CHECK_PROBE_INTERVAL
00220 #define STACK_CHECK_PROBE_INTERVAL 4096
00221 #endif
00222
00223
00224 #ifndef STACK_CHECK_PROBE_LOAD
00225 #define STACK_CHECK_PROBE_LOAD 0
00226 #endif
00227
00228
00229 #ifndef STACK_CHECK_PROTECT
00230 #define STACK_CHECK_PROTECT (75 * UNITS_PER_WORD)
00231 #endif
00232
00233
00234
00235 #ifndef STACK_CHECK_MAX_FRAME_SIZE
00236 #define STACK_CHECK_MAX_FRAME_SIZE \
00237 (STACK_CHECK_PROBE_INTERVAL - UNITS_PER_WORD)
00238 #endif
00239
00240
00241 #ifndef STACK_CHECK_FIXED_FRAME_SIZE
00242 #define STACK_CHECK_FIXED_FRAME_SIZE (4 * UNITS_PER_WORD)
00243 #endif
00244
00245
00246
00247
00248 #ifndef STACK_CHECK_MAX_VAR_SIZE
00249 #define STACK_CHECK_MAX_VAR_SIZE (STACK_CHECK_MAX_FRAME_SIZE / 100)
00250 #endif
00251
00252
00253
00254
00255
00256
00257
00258
00259
00260
00261
00262 enum optab_methods
00263 {
00264 OPTAB_DIRECT,
00265 OPTAB_LIB,
00266 OPTAB_WIDEN,
00267 OPTAB_LIB_WIDEN,
00268 OPTAB_MUST_WIDEN
00269 };
00270
00271
00272
00273
00274 extern rtx expand_simple_binop PARAMS ((enum machine_mode, enum rtx_code, rtx,
00275 rtx, rtx, int, enum optab_methods));
00276 extern rtx expand_simple_unop PARAMS ((enum machine_mode, enum rtx_code,
00277 rtx, rtx, int));
00278
00279
00280
00281 extern int have_insn_for PARAMS ((enum rtx_code, enum machine_mode));
00282
00283
00284 extern void emit_libcall_block PARAMS ((rtx, rtx, rtx, rtx));
00285
00286
00287
00288
00289
00290 extern rtx gen_add2_insn PARAMS ((rtx, rtx));
00291 extern rtx gen_add3_insn PARAMS ((rtx, rtx, rtx));
00292 extern rtx gen_sub2_insn PARAMS ((rtx, rtx));
00293 extern rtx gen_sub3_insn PARAMS ((rtx, rtx, rtx));
00294 extern rtx gen_move_insn PARAMS ((rtx, rtx));
00295 extern int have_add2_insn PARAMS ((rtx, rtx));
00296 extern int have_sub2_insn PARAMS ((rtx, rtx));
00297
00298
00299
00300 extern void emit_cmp_and_jump_insns PARAMS ((rtx, rtx, enum rtx_code, rtx,
00301 enum machine_mode, int, rtx));
00302
00303
00304 extern void emit_indirect_jump PARAMS ((rtx));
00305
00306 #ifdef HAVE_conditional_move
00307
00308 rtx emit_conditional_move PARAMS ((rtx, enum rtx_code, rtx, rtx,
00309 enum machine_mode, rtx, rtx,
00310 enum machine_mode, int));
00311
00312
00313 int can_conditionally_move_p PARAMS ((enum machine_mode mode));
00314
00315 #endif
00316
00317
00318
00319
00320
00321
00322 extern rtx negate_rtx PARAMS ((enum machine_mode, rtx));
00323
00324
00325 extern rtx expand_and PARAMS ((enum machine_mode, rtx, rtx, rtx));
00326
00327
00328 extern rtx emit_store_flag PARAMS ((rtx, enum rtx_code, rtx, rtx,
00329 enum machine_mode, int, int));
00330
00331
00332 extern rtx emit_store_flag_force PARAMS ((rtx, enum rtx_code, rtx, rtx,
00333 enum machine_mode, int, int));
00334
00335
00336
00337
00338
00339 extern rtx canonicalize_condition PARAMS ((rtx, rtx, int, rtx *, rtx));
00340
00341
00342
00343 extern rtx get_condition PARAMS ((rtx, rtx *));
00344
00345
00346 extern rtx gen_cond_trap PARAMS ((enum rtx_code, rtx, rtx, rtx));
00347
00348
00349 extern rtx expand_builtin PARAMS ((tree, rtx, rtx, enum machine_mode, int));
00350 extern void std_expand_builtin_va_start PARAMS ((tree, rtx));
00351 extern rtx std_expand_builtin_va_arg PARAMS ((tree, tree));
00352 extern rtx expand_builtin_va_arg PARAMS ((tree, tree));
00353 extern void default_init_builtins PARAMS ((void));
00354 extern rtx default_expand_builtin PARAMS ((tree, rtx, rtx,
00355 enum machine_mode, int));
00356 extern void expand_builtin_setjmp_setup PARAMS ((rtx, rtx));
00357 extern void expand_builtin_setjmp_receiver PARAMS ((rtx));
00358 extern void expand_builtin_longjmp PARAMS ((rtx, rtx));
00359 extern rtx expand_builtin_saveregs PARAMS ((void));
00360 extern void expand_builtin_trap PARAMS ((void));
00361 extern HOST_WIDE_INT get_varargs_alias_set PARAMS ((void));
00362 extern HOST_WIDE_INT get_frame_alias_set PARAMS ((void));
00363 extern void record_base_value PARAMS ((unsigned int, rtx, int));
00364 extern void record_alias_subset PARAMS ((HOST_WIDE_INT,
00365 HOST_WIDE_INT));
00366 extern HOST_WIDE_INT new_alias_set PARAMS ((void));
00367 extern int can_address_p PARAMS ((tree));
00368
00369
00370
00371
00372
00373 extern void init_expr_once PARAMS ((void));
00374
00375
00376 extern void init_expr PARAMS ((void));
00377
00378
00379 extern void finish_expr_for_function PARAMS ((void));
00380
00381
00382
00383 extern rtx protect_from_queue PARAMS ((rtx, int));
00384
00385
00386 extern void emit_queue PARAMS ((void));
00387
00388
00389 extern int queued_subexp_p PARAMS ((rtx));
00390
00391
00392
00393 extern void convert_move PARAMS ((rtx, rtx, int));
00394
00395
00396 extern rtx convert_to_mode PARAMS ((enum machine_mode, rtx, int));
00397
00398
00399 extern rtx convert_modes PARAMS ((enum machine_mode, enum machine_mode,
00400 rtx, int));
00401
00402
00403
00404 enum block_op_methods
00405 {
00406 BLOCK_OP_NORMAL,
00407 BLOCK_OP_NO_LIBCALL,
00408 BLOCK_OP_CALL_PARM
00409 };
00410
00411 extern void init_block_move_fn PARAMS ((const char *));
00412 extern void init_block_clear_fn PARAMS ((const char *));
00413
00414 extern rtx emit_block_move PARAMS ((rtx, rtx, rtx, enum block_op_methods));
00415
00416
00417
00418 extern void move_block_to_reg PARAMS ((int, rtx, int, enum machine_mode));
00419
00420
00421
00422 extern void move_block_from_reg PARAMS ((int, rtx, int, int));
00423
00424
00425 extern rtx gen_group_rtx PARAMS ((rtx));
00426
00427
00428
00429 extern void emit_group_load PARAMS ((rtx, rtx, int));
00430
00431
00432
00433 extern void emit_group_move PARAMS ((rtx, rtx));
00434
00435
00436
00437 extern void emit_group_store PARAMS ((rtx, rtx, int));
00438
00439 #ifdef TREE_CODE
00440
00441 extern rtx copy_blkmode_from_reg PARAMS ((rtx,rtx,tree));
00442 #endif
00443
00444
00445 extern void use_reg PARAMS ((rtx *, rtx));
00446
00447
00448
00449 extern void use_regs PARAMS ((rtx *, int, int));
00450
00451
00452 extern void use_group_regs PARAMS ((rtx *, rtx));
00453
00454
00455
00456 extern rtx clear_storage PARAMS ((rtx, rtx));
00457
00458
00459
00460
00461 extern int can_move_by_pieces PARAMS ((unsigned HOST_WIDE_INT, unsigned int));
00462
00463
00464
00465
00466
00467
00468 extern int can_store_by_pieces PARAMS ((unsigned HOST_WIDE_INT,
00469 rtx (*) (PTR, HOST_WIDE_INT,
00470 enum machine_mode),
00471 PTR, unsigned int));
00472
00473
00474
00475
00476
00477
00478 extern rtx store_by_pieces PARAMS ((rtx, unsigned HOST_WIDE_INT,
00479 rtx (*) (PTR, HOST_WIDE_INT,
00480 enum machine_mode),
00481 PTR, unsigned int, int));
00482
00483
00484 extern rtx emit_move_insn PARAMS ((rtx, rtx));
00485
00486
00487 extern rtx emit_move_insn_1 PARAMS ((rtx, rtx));
00488
00489
00490
00491 extern rtx push_block PARAMS ((rtx, int, int));
00492
00493 #ifdef TREE_CODE
00494
00495 extern void emit_push_insn PARAMS ((rtx, enum machine_mode, tree, rtx,
00496 unsigned int, int, rtx, int, rtx, rtx,
00497 int, rtx));
00498
00499
00500 extern rtx expand_assignment PARAMS ((tree, tree, int, int));
00501
00502
00503
00504
00505
00506 extern rtx store_expr PARAMS ((tree, rtx, int));
00507 #endif
00508
00509
00510
00511
00512 extern rtx force_operand PARAMS ((rtx, rtx));
00513
00514
00515
00516
00517
00518
00519
00520
00521 extern tree find_placeholder PARAMS ((tree, tree *));
00522
00523
00524
00525
00526 extern rtx expand_expr PARAMS ((tree, rtx, enum machine_mode,
00527 enum expand_modifier));
00528
00529
00530
00531 extern void init_pending_stack_adjust PARAMS ((void));
00532
00533
00534
00535 extern void clear_pending_stack_adjust PARAMS ((void));
00536
00537
00538 extern void do_pending_stack_adjust PARAMS ((void));
00539
00540 #ifdef TREE_CODE
00541
00542
00543 extern tree string_constant PARAMS ((tree, tree *));
00544
00545
00546 extern void jumpifnot PARAMS ((tree, rtx));
00547
00548
00549 extern void jumpif PARAMS ((tree, rtx));
00550
00551
00552
00553 extern void do_jump PARAMS ((tree, rtx, rtx));
00554 #endif
00555
00556
00557 extern rtx compare_from_rtx PARAMS ((rtx, rtx, enum rtx_code, int,
00558 enum machine_mode, rtx));
00559 extern void do_compare_rtx_and_jump PARAMS ((rtx, rtx, enum rtx_code, int,
00560 enum machine_mode, rtx,
00561 rtx, rtx));
00562
00563
00564 extern int try_casesi PARAMS ((tree, tree, tree, tree, rtx, rtx));
00565 extern int try_tablejump PARAMS ((tree, tree, tree, tree, rtx, rtx));
00566
00567
00568
00569 extern unsigned int case_values_threshold PARAMS ((void));
00570
00571
00572 #ifdef TREE_CODE
00573
00574
00575 extern rtx expr_size PARAMS ((tree));
00576
00577
00578
00579 extern HOST_WIDE_INT int_expr_size PARAMS ((tree));
00580
00581 extern rtx lookup_static_chain PARAMS ((tree));
00582
00583
00584
00585 extern rtx fix_lexical_addr PARAMS ((rtx, tree));
00586
00587
00588 extern rtx trampoline_address PARAMS ((tree));
00589
00590
00591
00592 extern rtx hard_function_value PARAMS ((tree, tree, int));
00593
00594 extern rtx prepare_call_address PARAMS ((rtx, tree, rtx *, int, int));
00595
00596 extern rtx expand_call PARAMS ((tree, rtx, int));
00597
00598 extern rtx expand_shift PARAMS ((enum tree_code, enum machine_mode, rtx, tree,
00599 rtx, int));
00600 extern rtx expand_divmod PARAMS ((int, enum tree_code, enum machine_mode, rtx,
00601 rtx, rtx, int));
00602 extern void locate_and_pad_parm PARAMS ((enum machine_mode, tree, int, tree,
00603 struct args_size *,
00604 struct args_size *,
00605 struct args_size *,
00606 struct args_size *));
00607 extern rtx expand_inline_function PARAMS ((tree, tree, rtx, int, tree, rtx));
00608
00609
00610 extern rtx label_rtx PARAMS ((tree));
00611 #endif
00612
00613
00614 extern rtx promoted_input_arg PARAMS ((unsigned int, enum machine_mode *,
00615 int *));
00616
00617
00618
00619
00620 extern rtx eliminate_constant_term PARAMS ((rtx, rtx *));
00621
00622
00623
00624 extern rtx memory_address PARAMS ((enum machine_mode, rtx));
00625
00626
00627 extern rtx memory_address_noforce PARAMS ((enum machine_mode, rtx));
00628
00629
00630 extern void set_mem_alias_set PARAMS ((rtx, HOST_WIDE_INT));
00631
00632
00633 extern void set_mem_align PARAMS ((rtx, unsigned int));
00634
00635
00636 extern void set_mem_expr PARAMS ((rtx, tree));
00637
00638
00639 extern void set_mem_offset PARAMS ((rtx, rtx));
00640
00641
00642 extern void set_mem_size PARAMS ((rtx, rtx));
00643
00644
00645
00646
00647
00648 extern rtx change_address PARAMS ((rtx, enum machine_mode, rtx));
00649
00650
00651
00652 #define adjust_address(MEMREF, MODE, OFFSET) \
00653 adjust_address_1 (MEMREF, MODE, OFFSET, 1, 1)
00654
00655
00656 #define adjust_address_nv(MEMREF, MODE, OFFSET) \
00657 adjust_address_1 (MEMREF, MODE, OFFSET, 0, 1)
00658
00659
00660
00661
00662 #define adjust_automodify_address(MEMREF, MODE, ADDR, OFFSET) \
00663 adjust_automodify_address_1 (MEMREF, MODE, ADDR, OFFSET, 1)
00664
00665
00666 #define adjust_automodify_address_nv(MEMREF, MODE, ADDR, OFFSET) \
00667 adjust_automodify_address_1 (MEMREF, MODE, ADDR, OFFSET, 0)
00668
00669 extern rtx adjust_address_1 PARAMS ((rtx, enum machine_mode, HOST_WIDE_INT,
00670 int, int));
00671 extern rtx adjust_automodify_address_1 PARAMS ((rtx, enum machine_mode,
00672 rtx, HOST_WIDE_INT, int));
00673
00674
00675
00676
00677 extern rtx offset_address PARAMS ((rtx, rtx, HOST_WIDE_INT));
00678
00679
00680
00681
00682
00683 extern rtx replace_equiv_address PARAMS ((rtx, rtx));
00684
00685
00686 extern rtx replace_equiv_address_nv PARAMS ((rtx, rtx));
00687
00688
00689
00690 extern rtx widen_memory_access PARAMS ((rtx, enum machine_mode, HOST_WIDE_INT));
00691
00692
00693
00694 extern rtx validize_mem PARAMS ((rtx));
00695
00696 #ifdef TREE_CODE
00697
00698
00699
00700 extern void maybe_set_unchanging PARAMS ((rtx, tree));
00701
00702
00703
00704
00705 extern void set_mem_attributes PARAMS ((rtx, tree, int));
00706
00707
00708
00709
00710 extern void set_mem_attributes_minus_bitpos PARAMS ((rtx, tree, int,
00711 HOST_WIDE_INT));
00712 #endif
00713
00714
00715 extern rtx assemble_trampoline_template PARAMS ((void));
00716
00717
00718
00719 extern rtx stabilize PARAMS ((rtx));
00720
00721
00722
00723 extern rtx copy_all_regs PARAMS ((rtx));
00724
00725
00726 extern rtx copy_to_reg PARAMS ((rtx));
00727
00728
00729 extern rtx copy_addr_to_reg PARAMS ((rtx));
00730
00731
00732 extern rtx copy_to_mode_reg PARAMS ((enum machine_mode, rtx));
00733
00734
00735 extern rtx copy_to_suggested_reg PARAMS ((rtx, rtx, enum machine_mode));
00736
00737
00738
00739 extern rtx force_reg PARAMS ((enum machine_mode, rtx));
00740
00741
00742 extern rtx force_not_mem PARAMS ((rtx));
00743
00744 #ifdef TREE_CODE
00745
00746 extern enum machine_mode promote_mode PARAMS ((tree, enum machine_mode,
00747 int *, int));
00748 #endif
00749
00750
00751 extern void adjust_stack PARAMS ((rtx));
00752
00753
00754 extern void anti_adjust_stack PARAMS ((rtx));
00755
00756
00757 enum save_level {SAVE_BLOCK, SAVE_FUNCTION, SAVE_NONLOCAL};
00758
00759
00760 extern void emit_stack_save PARAMS ((enum save_level, rtx *, rtx));
00761
00762
00763 extern void emit_stack_restore PARAMS ((enum save_level, rtx, rtx));
00764
00765
00766
00767 extern rtx allocate_dynamic_stack_space PARAMS ((rtx, rtx, int));
00768
00769
00770
00771
00772
00773
00774 extern void probe_stack_range PARAMS ((HOST_WIDE_INT, rtx));
00775
00776
00777
00778 extern rtx hard_libcall_value PARAMS ((enum machine_mode));
00779
00780
00781
00782 extern rtx round_push PARAMS ((rtx));
00783
00784
00785
00786
00787
00788 enum extraction_pattern { EP_insv, EP_extv, EP_extzv };
00789 extern enum machine_mode
00790 mode_for_extraction PARAMS ((enum extraction_pattern, int));
00791
00792 extern rtx store_bit_field PARAMS ((rtx, unsigned HOST_WIDE_INT,
00793 unsigned HOST_WIDE_INT,
00794 enum machine_mode, rtx, HOST_WIDE_INT));
00795 extern rtx extract_bit_field PARAMS ((rtx, unsigned HOST_WIDE_INT,
00796 unsigned HOST_WIDE_INT, int, rtx,
00797 enum machine_mode, enum machine_mode,
00798 HOST_WIDE_INT));
00799 extern rtx expand_mult PARAMS ((enum machine_mode, rtx, rtx, rtx, int));
00800 extern bool const_mult_add_overflow_p PARAMS ((rtx, rtx, rtx, enum machine_mode, int));
00801 extern rtx expand_mult_add PARAMS ((rtx, rtx, rtx, rtx,enum machine_mode, int));
00802 extern rtx expand_mult_highpart_adjust PARAMS ((enum machine_mode, rtx, rtx, rtx, rtx, int));
00803
00804 extern rtx assemble_static_space PARAMS ((int));
00805
00806
00807
00808
00809 extern rtx (*lang_expand_expr) PARAMS ((union tree_node *, rtx,
00810 enum machine_mode,
00811 enum expand_modifier modifier));
00812
00813 extern int safe_from_p PARAMS ((rtx, tree, int));
00814
00815
00816
00817 extern void init_optabs PARAMS ((void));
00818 extern void init_all_optabs PARAMS ((void));
00819
00820
00821 extern rtx init_one_libfunc PARAMS ((const char *));
00822
00823 extern void do_jump_by_parts_equality_rtx PARAMS ((rtx, rtx, rtx));
00824 extern void do_jump_by_parts_greater_rtx PARAMS ((enum machine_mode,
00825 int, rtx, rtx, rtx,
00826 rtx));
00827
00828 #ifdef TREE_CODE
00829 extern void mark_seen_cases PARAMS ((tree, unsigned char *,
00830 HOST_WIDE_INT, int));
00831 #endif
00832
00833 extern int vector_mode_valid_p PARAMS ((enum machine_mode));