Richard Kenner [Mon, 9 May 1994 22:32:57 +0000 (18:32 -0400)]
(delete_if_ordinary): New function.
(delete_temp_files, delete_failure_queue): Call it.
From-SVN: r7267
Richard Kenner [Sat, 7 May 1994 21:52:53 +0000 (17:52 -0400)]
(mark_{referenced,set}_resources): Fix typos in last change.
From-SVN: r7266
Richard Kenner [Sat, 7 May 1994 21:48:59 +0000 (17:48 -0400)]
(emit_reload_insns): Don't try to delete output reload if there isn't
one.
From-SVN: r7265
Richard Kenner [Sat, 7 May 1994 16:21:28 +0000 (12:21 -0400)]
(REG_ALLOC_ORDER): New macro.
From-SVN: r7264
Richard Kenner [Sat, 7 May 1994 16:16:15 +0000 (12:16 -0400)]
(sched_analyze_insn, attach_deaths_insn): Look at
CALL_INSN_FUNCTION_USAGE.
From-SVN: r7263
Richard Kenner [Sat, 7 May 1994 16:12:53 +0000 (12:12 -0400)]
(LIB_SPEC): Support -fshared-data.
(CPP_SPEC): Set _SEQUENT_ to 1.
(SHARED_SECTION_ASM_OP, ASM_OUTPUT_SHARED_COMMON): Supply new macros.
(SHARED_BSS_SECTION_ASM_OP, BSS_SECTION_FUNCTION): Likewise.
From-SVN: r7262
Richard Kenner [Sat, 7 May 1994 14:09:32 +0000 (10:09 -0400)]
(choose_reload_regs): Remove previous change.
From-SVN: r7261
Richard Kenner [Sat, 7 May 1994 14:05:01 +0000 (10:05 -0400)]
Fix typo in comment.
From-SVN: r7260
Doug Evans [Sat, 7 May 1994 00:31:51 +0000 (00:31 +0000)]
(TARGET_FRW): Add note saying this option is deprecated.
(TARGET_FLAT): Renamed from TARGET_FRW_COMPAT.
(TARGET_SWITCHES): Delete references to -mfrw, -mfrw-compat. Add -mflat.
(CONDITIONAL_REGISTER_USAGE): If -mflat, fix %i7, rename "%fp"
to "%i7", and make %g7 a global_reg.
(FRAME_POINTER_REQUIRED): Handle -mflat.
(INITIAL_FRAME_POINTER_OFFSET): Likewise.
(ARG_POINTER_REGNUM): Explicitly say it's the frame pointer.
(LEAF_REGISTERS): Make %g7 not a leaf register.
(leaf_reg_backmap): Delete.
(LEAF_REG_BACKMAP): Likewise.
(FUNCTION_PROLOGUE): Handle -mflat.
(FUNCTION_EPILOGUE): Likewise.
(DELAY_SLOTS_FOR_EPILOGUE): Likewise.
(ELIGIBLE_FOR_EPILOGUE_DELAY): Likewise.
From-SVN: r7259
Doug Evans [Sat, 7 May 1994 00:30:10 +0000 (00:30 +0000)]
(leaf_reg_backmap): Delete.
(sparc_flat_compute_frame_size): Renamed from
sparc_frw_compute_frame_size. All callers changed.
(sparc_flat_save_restore): Likewise.
(sparc_flat_output_function_prologue): Likewise.
Delete decl of call_used_regs.
Delete reference to frame_base_name, use frame pointer explicitly.
Print prologue end marker.
(sparc_flat_output_function_epilogue): Likewise (renaming).
Delete decls of asm_out_data_file, asm_out_file, call_used_regs.
Print epilogue start marker.
(sparc_flat_epilogue_delay_slots): Likewise (renaming).
(sparc_flat_eligible_for_epilogue_delay): Likewise.
From-SVN: r7258
Richard Kenner [Fri, 6 May 1994 22:55:32 +0000 (18:55 -0400)]
(find_reloads): Ignore alternatives that will not be reloadable due to
PREFERRED_RELOAD_CLASS.
From-SVN: r7257
Richard Kenner [Fri, 6 May 1994 22:32:17 +0000 (18:32 -0400)]
(decl_attributes): Move the attribute recognition and rejection here from c-parse.in.
(decl_attributes): Move the attribute recognition and rejection here from
c-parse.in.
(decl_attributes): Use VALID_MACHINE_ATTRIBUTE macro.
From-SVN: r7256
Richard Kenner [Fri, 6 May 1994 22:31:50 +0000 (18:31 -0400)]
(print_node): Print attributes.
From-SVN: r7255
Richard Kenner [Fri, 6 May 1994 22:29:58 +0000 (18:29 -0400)]
(common_type): Add attribute merging.
(comp_types): Use COMP_TYPE_ATTRIBUTES macro.
From-SVN: r7254
Richard Kenner [Fri, 6 May 1994 22:29:26 +0000 (18:29 -0400)]
(TYPE_HASH): Move definition to top of file.
(make_node): Add support for SET_DEFAULT_TYPE_ATTRIBUTES.
(build_type_attribute_variant): New function.
(type_hash_lookup): Check if the attributes match.
(attribute_list_{equal,contained}): New functions.
From-SVN: r7253
Richard Kenner [Fri, 6 May 1994 22:28:47 +0000 (18:28 -0400)]
Rewrite attribute parsing; update the expected conflicts and state
numbers.
From-SVN: r7252
Richard Kenner [Fri, 6 May 1994 22:28:08 +0000 (18:28 -0400)]
(TYPE_ATTRIBUTES): New macro.
(struct tree_type): attributes, new field.
(precision): Move this field up for better alignment.
(attribute_list_{equal,contained}): Prototype for new functions.
(build_type_attribute_variant): Prototype for new function.
From-SVN: r7251
Richard Kenner [Fri, 6 May 1994 22:02:55 +0000 (18:02 -0400)]
(init_reg_sets_1): Eliminate several permanent call_fixed_regs.
From-SVN: r7250
Richard Kenner [Fri, 6 May 1994 21:54:08 +0000 (17:54 -0400)]
(stupid_life_analysis): Check the usage information on CALL_INSNs.
From-SVN: r7249
Richard Kenner [Fri, 6 May 1994 21:53:31 +0000 (17:53 -0400)]
(save_for_inline_copying, expand_inline_function): Copy
CALL_INSN_FUNCTION_USAGE field.
From-SVN: r7248
Richard Kenner [Fri, 6 May 1994 21:52:34 +0000 (17:52 -0400)]
(mark_referenced_resources, mark_set_resources): Change from USE and
CLOBBER insns to using CALL_INSN_FUNCTION_USAGE.
From-SVN: r7247
Richard Kenner [Fri, 6 May 1994 21:51:42 +0000 (17:51 -0400)]
(emit_reload_insns): Change from USE and CLOBBER insns to using
CALL_INSN_FUNCTION_USAGE.
From-SVN: r7246
Richard Kenner [Fri, 6 May 1994 21:50:55 +0000 (17:50 -0400)]
(find_cross_jump, get_label_{before,after}): Change from USE and
CLOBBER insns to using CALL_INSN_FUNCTION_USAGE.
From-SVN: r7245
Richard Kenner [Fri, 6 May 1994 21:50:04 +0000 (17:50 -0400)]
(fixup_var_refs_insns): Change from USE and CLOBBER insns to using
CALL_INSN_FUNCTION_USAGE.
From-SVN: r7244
Richard Kenner [Fri, 6 May 1994 21:49:35 +0000 (17:49 -0400)]
(insert_save_restore): Change from USE and CLOBBER insns to using
CALL_INSN_FUNCTION_USAGE.
From-SVN: r7243
Richard Kenner [Fri, 6 May 1994 21:48:55 +0000 (17:48 -0400)]
(flow_analysis, find_basic_blocks): Change from USE and CLOBBER insns
to using CALL_INSN_FUNCTION_USAGE.
From-SVN: r7242
Richard Kenner [Fri, 6 May 1994 21:48:22 +0000 (17:48 -0400)]
(use_regs): Change from USE and CLOBBER insns to using
CALL_INSN_FUNCTION_USAGE.
From-SVN: r7241
Richard Kenner [Fri, 6 May 1994 21:47:35 +0000 (17:47 -0400)]
(use_regs, expand_builtin_apply): Change from USE and CLOBBER insns to
using CALL_INSN_FUNCTION_USAGE.
From-SVN: r7240
Richard Kenner [Fri, 6 May 1994 21:46:44 +0000 (17:46 -0400)]
(prepare_call_address, emit_call_1, expand_call): Change from USE and CLOBBER insns to using CALL_INSN_FUNCTION_USAGE.
(prepare_call_address, emit_call_1, expand_call): Change from USE and CLOBBER
insns to using CALL_INSN_FUNCTION_USAGE.
(emit_library_call{,_value}): Likewise.
From-SVN: r7239
Richard Kenner [Fri, 6 May 1994 21:45:57 +0000 (17:45 -0400)]
(make_call_insn_raw): New function.
(emit_call_insn{,_before}): Use make_call_insn_raw.
From-SVN: r7238
Richard Kenner [Fri, 6 May 1994 21:45:07 +0000 (17:45 -0400)]
(cse_insn): Invalidate CLOBBERed registers.
(count_reg_usage): Count registers in USE rtls on CALL_INSNs.
From-SVN: r7237
Richard Kenner [Fri, 6 May 1994 21:44:06 +0000 (17:44 -0400)]
(try_combine): Restrict combining on CALL_INSNs.
(distribute_{notes,links}): Look at CALL_INSN_FUNCTION_USAGE.
From-SVN: r7236
Richard Kenner [Fri, 6 May 1994 21:43:38 +0000 (17:43 -0400)]
(reg_used_between_p): Check usage exprs on CALL_INSNs.
(reg_referenced_between_p, reg_set_p, dead_or_set_regno_p): Likewise.
(find_reg{,no}_fusage): New functions.
From-SVN: r7235
Richard Kenner [Fri, 6 May 1994 21:40:25 +0000 (17:40 -0400)]
(CALL_INSN_FUNCTION_USAGE): New macro.
(find_reg{,no}_fusage): Prototype for new function.
From-SVN: r7234
Richard Kenner [Fri, 6 May 1994 21:40:04 +0000 (17:40 -0400)]
(CALL_INSN): Define new CALL_INSN_FUNCTION_USAGE field.
From-SVN: r7233
Richard Kenner [Fri, 6 May 1994 18:04:37 +0000 (14:04 -0400)]
(assign_parms): Spread out the REG_EQUIV notes on
CONCATs.
From-SVN: r7232
Richard Kenner [Fri, 6 May 1994 17:46:14 +0000 (13:46 -0400)]
(expand_decl): Don't set current_function_calls_alloca here nor record
new stack level for nonlocal gotos.
From-SVN: r7231
Richard Kenner [Fri, 6 May 1994 17:44:56 +0000 (13:44 -0400)]
(expand_builtin...
(expand_builtin, case BUILT_IN_ALLOCA): Don't set
current_function_calls_alloca here nor record new stack level for
nonlocal gotos.
From-SVN: r7230
Richard Kenner [Fri, 6 May 1994 17:44:29 +0000 (13:44 -0400)]
(allocate_dynamic_stack_space): Just return virtual_stack_dynamic_rtx if asking for zero bytes.
(allocate_dynamic_stack_space): Just return virtual_stack_dynamic_rtx if
asking for zero bytes.
Set current_function_calls_alloca here and also record new stack level for
nonlocal gotos.
From-SVN: r7229
Richard Kenner [Fri, 6 May 1994 17:32:34 +0000 (13:32 -0400)]
(assign_parms): Use expr_size when appropriate.
From-SVN: r7228
Richard Kenner [Fri, 6 May 1994 16:59:23 +0000 (12:59 -0400)]
(comptypes): An enum type if compatible with type of same signedness
as well as precision.
From-SVN: r7227
Richard Kenner [Fri, 6 May 1994 16:52:00 +0000 (12:52 -0400)]
(addsi3, subsi3): Add define_expand to make adddi3/subdi3; old pattern
is now anonymous.
From-SVN: r7226
Richard Kenner [Fri, 6 May 1994 16:51:22 +0000 (12:51 -0400)]
(CONST_COSTS): Revise all costs.
From-SVN: r7225
Richard Kenner [Fri, 6 May 1994 16:42:40 +0000 (12:42 -0400)]
(simplify_rtx, case MULT): Don't convert MULT to shift here.
(simplify_logical, case IOR): Convert back to PLUS if valid and it will
combine with another PLUS.
(extract_left_shift): New function.
(make_compound_operation, case ASHIFTRT): Simplify by calling it.
(force_to_mode): Don't ignore if X is a SUBREG.
(force_to_mode, case AND): Try to turn unchecked bits on instead of just off
and see which is cheaper.
From-SVN: r7224
Ian Lance Taylor [Fri, 6 May 1994 15:31:51 +0000 (15:31 +0000)]
Don't ignore errors in for loop over $(LIB[12]FUNCS_EXTRA)
From-SVN: r7223
Mike Stump [Fri, 6 May 1994 10:13:17 +0000 (10:13 +0000)]
tell expand_expr that we are going to ignore the cleanup.
TREE_SIDE_EFFECTS should be set on these things.
From-SVN: r7222
Mike Stump [Fri, 6 May 1994 09:27:46 +0000 (09:27 +0000)]
36th Cygnus<->FSF merge
From-SVN: r7221
Mike Stump [Fri, 6 May 1994 09:02:42 +0000 (09:02 +0000)]
minor tweak.
From-SVN: r7220
Mike Stump [Fri, 6 May 1994 08:56:35 +0000 (08:56 +0000)]
loose some C++ options.
From-SVN: r7219
Stan Shebs [Fri, 6 May 1994 01:00:48 +0000 (01:00 +0000)]
*** empty log message ***
From-SVN: r7218
Mike Stump [Thu, 5 May 1994 22:19:26 +0000 (22:19 +0000)]
35th Cygnus<->FSF merge
From-SVN: r7217
Richard Kenner [Thu, 5 May 1994 18:37:00 +0000 (14:37 -0400)]
(simplify_rtx, case SUBREG): Don't call force_to_mode.
(simplify_set): Call force_to_mode here.
From-SVN: r7216
Richard Kenner [Thu, 5 May 1994 17:39:17 +0000 (13:39 -0400)]
(movhi): Simplify code involving jump-table reference.
(load_address): Handle case of jump-table reference; output required label.
From-SVN: r7215
Ian Lance Taylor [Thu, 5 May 1994 16:28:46 +0000 (16:28 +0000)]
Include source file name in dependency output.
From-SVN: r7214
Doug Evans [Wed, 4 May 1994 22:44:55 +0000 (22:44 +0000)]
Remove duplicate -freebsd* entry.
From-SVN: r7213
Jason Merrill [Wed, 4 May 1994 21:32:22 +0000 (21:32 +0000)]
(special_symbol): Don't copy simple strings, use wchar_type.
(main): Setup wchar_type for C++ if needed.
(initialize_builtins): Use wchar_type.
From-SVN: r7212
Richard Kenner [Wed, 4 May 1994 21:12:27 +0000 (17:12 -0400)]
(push_secondary_reload): Use TYPE for secondary type if it is
RELOAD_FOR_{INPUT,OUTPUT}_ADDRESS.
From-SVN: r7211
Richard Kenner [Wed, 4 May 1994 20:45:28 +0000 (16:45 -0400)]
(find_reg): When looking for locally-allocated hard regs to reclaim,
use REG_ALLOC_ORDER to find least used.
From-SVN: r7210
Richard Kenner [Wed, 4 May 1994 20:41:15 +0000 (16:41 -0400)]
(emit_reload_insns): Add another way to delete an output reload.
From-SVN: r7209
Richard Kenner [Wed, 4 May 1994 20:35:23 +0000 (16:35 -0400)]
(reload, reload_as_needed): Check for use of return register with
reg_referenced_p, not reg_mentioned_p.
From-SVN: r7208
Jim Wilson [Wed, 4 May 1994 18:28:18 +0000 (11:28 -0700)]
(override_options): Delete TARGET_LLONG128 references.
From-SVN: r7207
Jim Wilson [Wed, 4 May 1994 18:27:45 +0000 (11:27 -0700)]
(MASK_LLONG128, TARGET_LLONG128): Delete.
(TARGET_SWITCHES): Delete -mlonglong128 option.
(LONG_LONG_TYPE_SIZE): Delete TARGET_LLONG128 reference.
From-SVN: r7206
Jim Wilson [Wed, 4 May 1994 18:25:08 +0000 (11:25 -0700)]
Fix typo in comment.
From-SVN: r7205
Jim Wilson [Wed, 4 May 1994 18:23:33 +0000 (11:23 -0700)]
(CPP_SPEC): Delete.
(SIZE_TYPE): Delete.
From-SVN: r7204
Jim Wilson [Wed, 4 May 1994 18:23:09 +0000 (11:23 -0700)]
(CPP_SPEC): Define __PTRDIFF_TYPE__ and __mips.
(PTRDIFF_TYPE): Delete.
(SIZE_TYPE): Define.
(SET_ASM_OP): Define.
From-SVN: r7203
Jim Wilson [Wed, 4 May 1994 18:22:40 +0000 (11:22 -0700)]
(CPP_SPEC): Define __SIZE_TYPE__, __PTRDIFF_TYPE__, and __mips.
From-SVN: r7202
Jim Wilson [Wed, 4 May 1994 18:22:12 +0000 (11:22 -0700)]
(PTRDIFF_TYPE): Delete.
(CPP_SPEC): Define, overriding ultrix.h version.
From-SVN: r7201
Jim Wilson [Wed, 4 May 1994 18:21:37 +0000 (11:21 -0700)]
(CPP_SPEC): Define __SIZE_TYPE__,
__PTRDIFF_TYPE__, and __mips.
(SIZE_TYPE): Delete.
From-SVN: r7200
Jim Wilson [Wed, 4 May 1994 18:20:59 +0000 (11:20 -0700)]
(CPP_SPEC): Delete.
From-SVN: r7199
Jason Merrill [Tue, 3 May 1994 23:13:23 +0000 (23:13 +0000)]
Make-lang.in (cc1plus): Don't depend on OBJS or BC_OBJS, since stamp-objlist does.
* Make-lang.in (cc1plus): Don't depend on OBJS or BC_OBJS, since
stamp-objlist does.
* Makefile.in (../cc1plus): Depend on OBJDEPS.
(OBJDEPS): Dependency version of OBJS.
From-SVN: r7198
Jason Merrill [Tue, 3 May 1994 23:09:22 +0000 (23:09 +0000)]
(../cc1plus): Depend on OBJDEPS.
(OBJDEPS): Dependency version of OBJS.
From-SVN: r7197
Jason Merrill [Tue, 3 May 1994 23:08:42 +0000 (23:08 +0000)]
(cc1plus): Don't depend on OBJS or BC_OBJS, since stamp-objlist does.
From-SVN: r7196
Doug Evans [Tue, 3 May 1994 23:04:27 +0000 (23:04 +0000)]
(stamp-objlist): Depend on OBJS and BC_OBJS so that
subdir makes will know to re-link.
From-SVN: r7195
Per Bothner [Mon, 2 May 1994 23:49:19 +0000 (16:49 -0700)]
Don't write out static consts now, unless we need them.
From-SVN: r7194
Jim Wilson [Mon, 2 May 1994 22:22:22 +0000 (15:22 -0700)]
(casesi): Delete force_reg calls.
From-SVN: r7193
Jim Wilson [Mon, 2 May 1994 22:21:14 +0000 (15:21 -0700)]
(expand_end_case): Make sure gen_casesi operands are
valid by passing them through copy_to_mode_reg if necessary.
From-SVN: r7192
Jim Wilson [Mon, 2 May 1994 21:24:52 +0000 (14:24 -0700)]
(output_move_double): Always use split_double for the
CNSTOP case.
From-SVN: r7191
Jim Wilson [Mon, 2 May 1994 20:53:21 +0000 (13:53 -0700)]
(translate_options): For options that take an argument,
don't skip the argument if it doesn't exist.
From-SVN: r7190
Jim Wilson [Mon, 2 May 1994 20:48:11 +0000 (13:48 -0700)]
(pushdecl): Use lookup_name_current_level_global instead of lookup_name for extern references.
(pushdecl): Use lookup_name_current_level_global instead
of lookup_name for extern references. Don't return duplicate decl
if it came from the global binding level, and there exists a
conflicting decl in an intervening block.
(lookup_name_current_level_global); New function.
From-SVN: r7189
Jim Wilson [Mon, 2 May 1994 20:47:39 +0000 (13:47 -0700)]
(lookup_name_current_level_global): Declare.
From-SVN: r7188
Jim Wilson [Mon, 2 May 1994 20:44:44 +0000 (13:44 -0700)]
(read, write): Last parm is size_t not unsigned int.
From-SVN: r7187
Jim Wilson [Mon, 2 May 1994 20:42:23 +0000 (13:42 -0700)]
(remap_split_bivs): New function.
(unroll_loop): When remapping split bivs in the last instruction,
handle JUMP_INSNs in addition to INSNs.
From-SVN: r7186
Jason Merrill [Mon, 2 May 1994 20:37:24 +0000 (20:37 +0000)]
(INCLUDE_DEFAULTS): Add cxx_aware field.
From-SVN: r7185
Doug Evans [Fri, 29 Apr 1994 22:29:42 +0000 (22:29 +0000)]
(dbxout_type): check TYPE_DECL_SUPPRESS_DEBUG to generate cross reference
in stabs.
From-SVN: r7184
Doug Evans [Fri, 29 Apr 1994 22:28:22 +0000 (22:28 +0000)]
(TYPE_DECL_SUPPRESS_DEBUG): new macro to support
suppressing of detail type infos into stabs.
From-SVN: r7183
Doug Evans [Fri, 29 Apr 1994 06:08:29 +0000 (06:08 +0000)]
Several
language directory reorg patches.
From-SVN: r7182
Doug Evans [Fri, 29 Apr 1994 05:20:27 +0000 (05:20 +0000)]
(BC_OBJS): Delete.
(OBJS): Cat ../stamp-objlist to get language independent files.
Also use ../c-common.o.
(../cc1plus): Delete reference to BC_OBJS.
From-SVN: r7181
Doug Evans [Fri, 29 Apr 1994 05:18:33 +0000 (05:18 +0000)]
(cc1plus): Depend on stamp-objlist.
From-SVN: r7180
Doug Evans [Fri, 29 Apr 1994 05:01:27 +0000 (05:01 +0000)]
(stamp-objlist): New target.
From-SVN: r7179
Doug Evans [Fri, 29 Apr 1994 02:16:48 +0000 (02:16 +0000)]
(INCLUDES): Move definition to same place as parent makefile.
(ALLOCA): Define.
(OLDAR_FLAGS): Delete.
(OLDCC): Define.
(CLIB): Define.
(SUBDIR_USE_ALLOCA): Don't use ALLOCA if compiling with gcc.
From-SVN: r7178
Doug Evans [Fri, 29 Apr 1994 02:14:06 +0000 (02:14 +0000)]
(c++.distdir): mkdir tmp/cp first.
From-SVN: r7177
Doug Evans [Fri, 29 Apr 1994 02:06:09 +0000 (02:06 +0000)]
(USE_ALLOCA): Rearrange "'s.
(FLAGS_TO_PASS): Delete CLIB, MALLOC, OBSTACK.
From-SVN: r7176
Jim Wilson [Thu, 28 Apr 1994 23:06:33 +0000 (16:06 -0700)]
(expand_end_case): Correct test for sign extending
unsigned constant index when creating index_expr.
From-SVN: r7175
Jim Wilson [Thu, 28 Apr 1994 23:03:41 +0000 (16:03 -0700)]
(macroexpand): Use start_line for line number of the new
instack level pushed at the end.
From-SVN: r7174
Jim Wilson [Thu, 28 Apr 1994 22:59:27 +0000 (15:59 -0700)]
(adddi3, subdi3, anddi3, iordi3, xordi3): Corresponding changes.
(one_cmpldi3): Don't allow constants for operand 1.
From-SVN: r7173
Jim Wilson [Thu, 28 Apr 1994 22:58:53 +0000 (15:58 -0700)]
(arith_double_operand): Modify to accept all possible constants.
From-SVN: r7172
Mike Stump [Thu, 28 Apr 1994 22:48:45 +0000 (22:48 +0000)]
34th Cygnus<->FSF merge
From-SVN: r7171
Mike Stump [Thu, 28 Apr 1994 22:46:43 +0000 (22:46 +0000)]
remove EH from backend.
From-SVN: r7170
Richard Kenner [Thu, 28 Apr 1994 22:29:12 +0000 (18:29 -0400)]
Clarify license status.
From-SVN: r7169
Richard Kenner [Thu, 28 Apr 1994 22:10:10 +0000 (18:10 -0400)]
(output_prolog): Use mr, lis, and li instructions.
Use subf instruction if TARGET_POWERPC.
(output_epilog): Use cal/addi instruction.
From-SVN: r7168