ChangeLog-gcc-3.3.txt 35 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818
  1. Changelog of the TIGCC-local changes to GCC (3.3 branch):
  2. 2004-09-25 Kevin Kofler <Kevin@tigcc.ticalc.org>
  3. * Backport from mainline:
  4. 2004-06-02 Andreas Schwab <schwab@suse.de>
  5. * config/m68k/m68k.c (output_andsi3): Fix detection of narrowable
  6. operation for 64 bit hosts.
  7. * Apply proposed patch from http://gcc.gnu.org/ml/gcc-patches/2003-12/msg00717.html:
  8. 2003-12-07 Eric Botcazou <ebotcazou@libertysurf.fr>
  9. PR optimization/12085
  10. * tree-inline.c (expand_call_inline): Do not inline functions at
  11. calling points where they are viewed with too different a prototype
  12. than the actual one.
  13. * ifcvt.c (noce_operand_ok): Don't if-convert global register variables.
  14. (dead_or_predicable): Likewise.
  15. 2004-08-08 Kevin Kofler <Kevin@tigcc.ticalc.org>
  16. * varasm.c (output_addressed_constants): Address differences are not reloc-free for TIGCC.
  17. (default_select_section): Don't put compound literals in mergeable sections if they
  18. contain relocations.
  19. * config/m68k/m68k.c (print_operand): Add -__relation(%an) after a MEM(CONST) if
  20. reg-relative.
  21. * final.c (output_asm_insn): Likewise.
  22. * config/m68k/m68k.h (EXTRA_CONSTRAINT): Disable 'T' if reg-relative.
  23. (LEGITIMATE_CONSTANT_P): Disallow pcrel_address (#label or #label+const) if reg-relative.
  24. * config/m68k/m68k.md (unnamed pattern for expanded movesi): Also enable the TARGET_PCREL
  25. lea/pea pattern if TARGET_REG_RELATIVE.
  26. * config/m68k/m68k.md (cmphi, cmpqi, 2 unnamed patterns related to them): Accept only
  27. nonimmediate_operand, not nonimmediate_src_operand. (Fixes invalid ASM with -mpcrel.)
  28. 2004-08-05 Kevin Kofler <Kevin@tigcc.ticalc.org>
  29. * 3.3.3-tigcc-6 released as part of TIGCC 0.95 Beta 15.
  30. 2004-07-28 Kevin Kofler <Kevin@tigcc.ticalc.org>
  31. * c-format.c (check_format_types): Warn if someone passes an integer where a
  32. floating-point constant is expected.
  33. 2004-07-27 Kevin Kofler <Kevin@tigcc.ticalc.org>
  34. * varasm.c (default_select_section): Put compound literals (if
  35. flag_global_compound_literals) and complex literals in mergeable sections.
  36. * flags.h (flag_merge_constant_pools): New flag.
  37. * toplev.c (flag_merge_constant_pools): Likewise. Default to 1.
  38. (f_options): Add -fmerge-constant-pools.
  39. * varasm.c (output_constant_pool): Create new mergeable section for constant pool if
  40. (flag_merge_constants && flag_merge_constant_pools).
  41. 2004-07-26 Kevin Kofler <Kevin@tigcc.ticalc.org>
  42. * 3.3.3-tigcc-5 released as part of TIGCC 0.95 Beta 14.
  43. 2004-07-25 Kevin Kofler <Kevin@tigcc.ticalc.org>
  44. * config/m68k/m68k.c (m68k_coff_asm_named_section): Handle mergeable and unaligned flag.
  45. * varasm.c (enum section_category): Move declaration up.
  46. (categorize_decl_for_section): Move prototype up.
  47. (mergeable_string_section): Implement string merging for TIGCC-extended COFF.
  48. (mergeable_constant_section): Implement constant merging for TIGCC-extended COFF.
  49. (default_select_section): Add support for mergeable sections.
  50. (default_section_type_flags_1): Likewise.
  51. 2004-07-20 Kevin Kofler <Kevin@tigcc.ticalc.org>
  52. * 3.3.3-tigcc-4 released as part of TIGCC 0.95 Beta 13.
  53. 2004-07-19 Kevin Kofler <Kevin@tigcc.ticalc.org>
  54. * stmt.c (emit_case_nodes): Don't omit the conditional branch to default where needed to
  55. handle case ranges correctly.
  56. 2004-06-20 Kevin Kofler <Kevin@tigcc.ticalc.org>
  57. * 3.3.3-tigcc-3 released as part of TIGCC 0.95 Beta 11.
  58. 2004-06-20 Kevin Kofler <Kevin@tigcc.ticalc.org>
  59. * config/m68k/m68k.c (m68k_coff_asm_named_section): Handle rodata sections properly
  60. with -fdata-sections.
  61. * varasm.c (asm_emit_uninitialised): Don't manually create sections for common symbols
  62. under -fdata-sections, the linker does it anyway.
  63. (assemble_variable): Likewise.
  64. (categorize_decl_for_section): Handle -fzero-initialized-in-bss correctly.
  65. 2004-06-19 Kevin Kofler <Kevin@tigcc.ticalc.org>
  66. * config/m68k/m68k_ti.h (TRAMPOLINE_ADJUST_ADDRESS): Don't hardcode 0x40000, let TIGCCLIB
  67. compute the offset. Remove the ghost space warning, this is now handled automatically
  68. by TIGCCLIB.
  69. * toplev.c (process_options): Remove pointless warning about -ffunction-sections and
  70. debugging on some targets (not ours!).
  71. * config/m68k/m68k.c (m68k_coff_asm_named_section): Handle BSS sections properly with
  72. -fdata-sections.
  73. 2004-04-15 Kevin Kofler <Kevin@tigcc.ticalc.org>
  74. * 3.3.3-tigcc-2 released as part of TIGCC 0.95 Beta 7.
  75. 2004-04-05 Kevin Kofler <Kevin@tigcc.ticalc.org>
  76. * calls.c (expand_call): Revert broken PR 8081 patch (2003-09-02/2004-02-11).
  77. 2004-03-13 Kevin Kofler <Kevin@tigcc.ticalc.org>
  78. * 3.3.3-tigcc-1 released as part of TIGCC 0.95 Beta 6.
  79. 2004-02-22 Kevin Kofler <Kevin@tigcc.ticalc.org>
  80. Fix -mpcrel support:
  81. * config/m68k/m68k.md (2 anonymous PIC call sequence patterns): Don't use bsr.l under
  82. -mpcrel. Use jbsr instead and let the assembler sort it out.
  83. * config/m68k/m68k.c (m68k_output_mi_thunk): Use jra instead of bra.l under -mpcrel.
  84. * config/m68k/m68k.md (3 anonymous patterns for cmp): Don't force addressing to be
  85. absolute.
  86. (ashrdi_const): Fix %d0 typo/thinko.
  87. * config/m68k/m68k.md (indirect_jump): Use jra instead of jmp. Don't add (%pc) under
  88. -mpcrel (using "%A0").
  89. * config/m68k/m68k.c (print_operands): Add %A letter to support this.
  90. * config/m68k/m68k.c (extended_address_operand): New function.
  91. * config/m68k/m68k-protos.h (extended_address_operand): Add prototype.
  92. * config/m68k/m68k.h (PREDICATE_CODES): Add extended_address_operand.
  93. * config/m68k/m68k.md (indirect_jump): Use it.
  94. 2004-02-22 Kevin Kofler <Kevin@tigcc.ticalc.org>
  95. * config/m68k/m68k-ti.h (ASM_FILE_START): Don't global-import __reg_relative, current
  96. tigcc.a only exports __reg_relative_an.
  97. 2004-02-19 Kevin Kofler <Kevin@tigcc.ticalc.org>
  98. * config/m68k/m68k-ti.h (ASM_FILE_START): Use __ld_entry_point_plus_0x8000 as __relation.
  99. 2004-02-19 Kevin Kofler <Kevin@tigcc.ticalc.org>
  100. * Merge with GCC 3.3.3 release.
  101. 2004-02-19 Kevin Kofler <Kevin@tigcc.ticalc.org>
  102. * config/m68k/m68k.c (output_move_double): Fix 10-byte fp stack pushes.
  103. 2004-02-19 Kevin Kofler <Kevin@tigcc.ticalc.org>
  104. * c-format.c (printf_length_specs): Remove modifiers not supported by AMS.
  105. (printf_flag_specs, print_char_table, format_types): Likewise. Add AMS extensions.
  106. (scanf_length_specs): Remove modifiers not supported by my *scanf implementation.
  107. (scanf_flag_specs, scan_char_table, format_types): Likewise.
  108. (print_char_table): Mark %y and %Y as extensions, add %r and %R.
  109. * builtin-attrs.def: Add list of 5. Add list pairs of 4,0 and 4,5. Add nonnull at 4.
  110. Move vscanf, vfscanf, vsscanf to C89. Add vcbprintf, cbprintf,
  111. vcbscanf, cbscanf.
  112. 2004-02-19 Kevin Kofler <Kevin@tigcc.ticalc.org>
  113. * Backport from mainline:
  114. 2003-04-16 J"orn Rennecke <joern.rennecke@superh.com>
  115. Re-apply this patch:
  116. 2002-05-16 Dale Johannesen <dalej@apple.com>
  117. * combine.c (cant_combine_insn_p): Reenable combinations
  118. involving hard regs unless CLASS_LIKELY_SPILLED_P.
  119. 2004-02-11 Kevin Kofler <Kevin@tigcc.ticalc.org>
  120. * c-format.c (print_char_table): Remove %o.
  121. 2004-02-11 Kevin Kofler <Kevin@tigcc.ticalc.org>
  122. Apply proposed patch for PR 8081:
  123. 2003-09-02 Sitikant Sahu <sitikants@noida.hcltech.com>
  124. * calls.c (expand_call): Allocate dynamically on stack for
  125. variable size structure return (PR 8081).
  126. 2004-02-11 Kevin Kofler <Kevin@tigcc.ticalc.org>
  127. Backport from mainline:
  128. 2004-01-11 Andreas Schwab <schwab@suse.de>
  129. * config/m68k/m68k.c (output_move_const_into_data_reg): Clear cc
  130. status for NOTB/NOTW/NEGW methods.
  131. 2004-02-10 Kevin Kofler <Kevin@tigcc.ticalc.org>
  132. * Merge with GCC 3.3.3 20030209 snapshot.
  133. * Don't configure with --with-gnu-ld, there is no point in lying about the linker we use.
  134. 2004-01-06 Kevin Kofler <Kevin@tigcc.ticalc.org>
  135. * 3.3.1-pre26 released as part of TIGCC 0.95 Beta 5.
  136. 2004-01-04 Kevin Kofler <Kevin@tigcc.ticalc.org>
  137. * cppdefaults.c (struct cpp_include_defaults): Disable hardcoded prefixes.
  138. (GCC_INCLUDE_DIR, GCC_INCLUDE_DIR_LEN): Disable hardcoded prefix.
  139. * gcc.c (STANDARD_EXEC_PREFIX, STANDARD_STARTFILE_PREFIX, TOOLDIR_BASE_PREFIX,
  140. STANDARD_BINDIR_PREFIX, standard_exec_prefix, standard_exec_prefix_1,
  141. md_exec_prefix, md_startfile_prefix, md_startfile_prefix_1,
  142. standard_startfile_prefix, standard_startfile_prefix_1,
  143. standard_startfile_prefix_2, tooldir_base_prefix, tooldir_prefix,
  144. standard_bindir_prefix): Disable.
  145. (struct static_specs): Disable md_exec_prefix, md_startfile_prefix,
  146. md_startfile_prefix_1 and startfile_prefix_spec.
  147. (int warn_std_ptr): Disable unused variable.
  148. (process_command): Don't use environment variables. Don't hardcode any prefix at
  149. compile time.
  150. (main): Likewise.
  151. 2003-12-28 Kevin Kofler <Kevin@tigcc.ticalc.org>
  152. * unroll.c (loop_iterations): Subtract 1 from n_iterations in unrotated (-Os) loop.
  153. Optimize case where n_iterations ends up 0 after subtracting 1 by deleting the loop.
  154. 2003-11-24 Kevin Kofler <Kevin@tigcc.ticalc.org>
  155. * 3.3.1-pre25 released as part of TIGCC 0.95 Beta 4.
  156. 2003-11-16 Kevin Kofler <Kevin@tigcc.ticalc.org>
  157. * real.c (bcdppmul): Handle resultl carry greater than 1 (if->while). Add sanity check.
  158. (bcdmul) Unswap operands for the neg*pos case.
  159. (bcddiv) Unswap operands for the neg/pos case.
  160. 2003-10-26 Kevin Kofler <Kevin@tigcc.ticalc.org>
  161. * 3.3.1-pre24 released as part of TIGCC 0.95 Beta 3.
  162. 2003-10-25 Kevin Kofler <Kevin@tigcc.ticalc.org>
  163. * real.c (bcdpdroplast): Remove.
  164. (bcdpadd1ulp): New function.
  165. (bcdppadd): Don't use bcdpdroplast. Do the rounding at the end, using bcdpadd1ulp.
  166. (bcdpnorm): Remove. Inline into bcdppsub.
  167. (bcdppsub): Don't use bcdpdroplast. Do the rounding at the end, during normalization.
  168. Also handle extra digits there. Don't use bcdpnorm.
  169. * real.c (bcdppadd): Avoid shift count overflow.
  170. (bcdppsub): Likewise.
  171. 2003-10-21 Kevin Kofler <Kevin@tigcc.ticalc.org>
  172. * 3.3.1-pre23 prepared for release (but not released).
  173. 2003-10-21 Kevin Kofler <Kevin@tigcc.ticalc.org>
  174. * real.c (bcdppmul): Fix exponent off-by-one.
  175. (bcdppdiv): Fix typo in multiplication of divisor by 2^56.
  176. Add missing reinitialization of factor in loop to compute divisorl.
  177. Fix off-by-one when checking if the divisor fits (need <=, not <).
  178. 2003-10-19 Kevin Kofler <Kevin@tigcc.ticalc.org>
  179. * 3.3.1-pre22b released as part of TIGCC 0.95 Beta 2 r1 for *nix
  180. 2003-10-19 Kevin Kofler <Kevin@tigcc.ticalc.org>
  181. * real.c (bcdppadd, bcdppsub, bcdppmul, bcdppdiv): Don't initialize a structure with a
  182. non-constant initializer, GCC 2 doesn't like that.
  183. 2003-10-12 Kevin Kofler <Kevin@tigcc.ticalc.org>
  184. * 3.3.1-pre22a released as part of TIGCC 0.95 Beta 2
  185. 2003-10-12 Kevin Kofler <Kevin@tigcc.ticalc.org>
  186. * toplev.c (flag_zero_initialized_in_bss): Make default off.
  187. 2003-10-12 Kevin Kofler <Kevin@tigcc.ticalc.org>
  188. * 3.3.1-pre22 prepared for release (but not released).
  189. 2003-10-12 Kevin Kofler <Kevin@tigcc.ticalc.org>
  190. * real.c (bcdppmul, bcdmul, bcdppdiv, bcddiv): New static functions.
  191. (real_arithmetic): Use bcdmul for multiplication and bcddiv for division. Drop obsolete
  192. hack using host floating point.
  193. (exact_real_inverse): Use bcddiv for the division. Only do the optimization if the
  194. inverse actually _is_ exact.
  195. * config/smapbcd.h (ZERO, UNSIGNED_ZERO, POSITIVE_ZERO, NEGATIVE_ZERO, UNSIGNED_INF,
  196. POSITIVE_INF, NEGATIVE_INF, NAN, REAL_VALUES_LESS, REAL_VALUE_LDEXP,
  197. REAL_VALUE_UNSIGNED_FIX, REAL_VALUE_RNDZINT, REAL_VALUE_DTOF,
  198. REAL_VALUE_HTOF, REAL_VALUE_NEGATE): Add __extension__ to shut up
  199. some -pedantic warnings.
  200. (MODE_HAS_NANS, MODE_HAS_INFINITIES, MODE_HAS_SIGNED_ZEROS): Define.
  201. * Revert local patches merged 2002-12-26:
  202. * toplev.c: Include setjmp.h.
  203. (float_signal): Revert removal.
  204. (float_handler_set, float_handled, float_handler): Likewise.
  205. (set_float_handler): Likewise.
  206. (general_init): Set SIGFPE to float_handler, not crash_handler.
  207. * toplev.h (set_float_handler): Add prototype.
  208. 2003-10-11 Kevin Kofler <Kevin@tigcc.ticalc.org>
  209. * Revert local patches merged 2002-12-26:
  210. * fold-const.c (const_binop): Don't use REAL_ARITHMETIC.
  211. * tree.h (struct real_value): Disable.
  212. (struct smap_bcd_float): Declare.
  213. (TREE_REAL_CST): Add cast to (REAL_VALUE_TYPE *) to convert struct smap_bcd_float
  214. to the typedef'ed smap_bcd_float.
  215. (struct tree_real_cst): Use struct smap_bcd_float instead of struct real_value.
  216. * rtl.h (smap_bcd_float): Declare.
  217. (CONST_DOUBLE_REAL_VALUE): Use smap_bcd_float instead of struct real_value.
  218. * real.h (struct real_value): Comment out definition, add own definition instead.
  219. * config/smapbcd.h (smap_bcd_float): Typedef to struct real_value. Remove old typedef.
  220. * real.c (bcdpdroplast, bcdpnorm, bcdppadd, bcdppsub, bcdadd, bcdsub, bcdmin, bcdmax): New
  221. static functions.
  222. (real_arithmetic): Use bcdadd, bcdsub, bcdmin and bcdmax for addition, subtraction, min
  223. and max (respectively).
  224. 2003-10-10 Kevin Kofler <Kevin@tigcc.ticalc.org>
  225. * 3.3.1-pre21 prepared for release (but not released).
  226. 2003-10-10 Kevin Kofler <Kevin@tigcc.ticalc.org>
  227. * Revert local patches merged 2002-12-26:
  228. * c-decl.c (pushdecl): If compiled using "nostub" mode, set a flag.
  229. * config/m68k/m68k.h:
  230. (MASK_BADLINK, TARGET_BADLINK): Define.
  231. (MASK_NOSTUB, TARGET_NOSTUB): Define.
  232. * config/m68k/m68k.h: (TARGET_SWITCHES): Remove no longer supported "badlink" and "mlink"
  233. switches (and their negatives).
  234. * Revert:
  235. 2002-12-26 Kevin Kofler <Kevin@tigcc.ticalc.org>
  236. * config/m68k/coff.h (BSS_SECTION_ASM_OP): Disable.
  237. (ASM_OUTPUT_ALIGNED_BSS): Likewise.
  238. * config/m68k/m68k-coff.h: (TARGET_DEFAULT): Remove MASK_BADLINK.
  239. * config/m68k/m68k-ti.h: (ASM_OUTPUT_COMMON): Don't use TARGET_BADLINK and TARGET_NOSTUB.
  240. (ASM_OUTPUT_LOCAL): Likewise.
  241. (BSS_SECTION_ASM_OP): Redefine, handle TARGET_NO_BSS.
  242. 2003-10-09 Kevin Kofler <Kevin@tigcc.ticalc.org>
  243. * 3.3.1-pre20 prepared for release (but not released).
  244. 2003-10-09 Kevin Kofler <Kevin@tigcc.ticalc.org>
  245. * config/m68k/m68k-ti.h (ASM_FILE_START): Adapt -freg-relative code for the new linker.
  246. 2003-10-08 Kevin Kofler <Kevin@tigcc.ticalc.org>
  247. * config/smapbcd.h (REAL_VALUE_TO_STRING): Use "%08lx", not "%lx".
  248. (REAL_VALUE_ATOF): Call REAL_VALUE_HTOF for hex floats or REAL_VALUE_DTOF for decimal
  249. floats. Rename original to...
  250. (REAL_VALUE_DTOF): ...this new macro.
  251. (REAL_VALUE_HTOF): Detect host floating point overflow.
  252. * fold-const.c (const_binop): Likewise.
  253. * real.c (real_arithmetic): Likewise.
  254. (exact_real_inverse): Likewise.
  255. 2003-10-07 Kevin Kofler <Kevin@tigcc.ticalc.org>
  256. * cppinit.c (cpp_read_main_file): Always disable "standard" include directory processing.
  257. 2003-09-08 Kevin Kofler <Kevin@tigcc.ticalc.org>
  258. * 3.3.1-pre19 released.
  259. 2003-09-07 Kevin Kofler <Kevin@tigcc.ticalc.org>
  260. * stmt.c (expand_end_case_type): Don't balance the tree when optimizing for size.
  261. A linear decision tree gives far smaller code.
  262. (emit_case_nodes): Omit the conditional branch to default if we are optimizing for size.
  263. 2003-09-06 Kevin Kofler <Kevin@tigcc.ticalc.org>
  264. Backport from mainline (3.4):
  265. 2003-08-30 Steven Bosscher <steven@gcc.gnu.org>
  266. Roger Sayle <roger@eyesopen.com>
  267. PR middle-end/11823
  268. * stmt.c (expand_end_case_type): Only use jump tables for dense
  269. switch statements when optimizing for size.
  270. 2003-07-05 Kevin Kofler <Kevin@tigcc.ticalc.org>
  271. * 3.3.1-pre18 released.
  272. 2003-07-05 Kevin Kofler <Kevin@tigcc.ticalc.org>
  273. * config/m68k/m68k.h (MULW_COST): Decrease multiplication cost under -Os.
  274. (DIVW_COST): Decrease division cost under -Os.
  275. (UDIVW_COST): Likewise.
  276. (RTX_COSTS): Adjust shift costs under -Os. Distinguish signed vs. unsigned division.
  277. 2003-06-27 Kevin Kofler <Kevin@tigcc.ticalc.org>
  278. * 3.3.1-pre17 released.
  279. 2003-06-27 Kevin Kofler <Kevin@tigcc.ticalc.org>
  280. * Merge with GCC 3.3.1 20030623 snapshot.
  281. * config/m68k/m68k.h (MASK_NO_BSS, TARGET_NO_BSS): Define.
  282. (TARGET_SWITCHES): Add -mno-bss, -mnobss, -mbss.
  283. * config/m68k/m68k_ti.h (ASM_OUTPUT_COMMON, ASM_OUTPUT_LOCAL): Use them.
  284. 2003-06-07 Kevin Kofler <Kevin@tigcc.ticalc.org>
  285. * 3.3.1-pre16 released.
  286. 2003-06-07 Kevin Kofler <Kevin@tigcc.ticalc.org>
  287. * Disabled the following patch:
  288. 2003-03-21 Richard Henderson <rth@redhat.com>
  289. PR opt/2001
  290. * bb-reorder.c (maybe_duplicate_computed_goto_succ): New.
  291. (make_reorder_chain_1): Call it.
  292. * function.h (struct function): Add computed_goto_common_label,
  293. computed_goto_common_reg.
  294. * function.c (free_after_compilation): Zap them.
  295. * stmt.c (expand_computed_goto): Use them to produce one
  296. indirect branch per function.
  297. 2003-06-06 Kevin Kofler <Kevin@tigcc.ticalc.org>
  298. * 3.3.1-pre15 released.
  299. 2003-06-06 Kevin Kofler <Kevin@tigcc.ticalc.org>
  300. * config/m68k/m68k.h (MASK_MERGE_TO_DATA, TARGET_MERGE_TO_DATA): Define.
  301. (TARGET_SWITCHES): Add -mmerge-to-data, -mno-merge-to-data, -mnomerge-to-data.
  302. * config/m68k/m68k_ti.h (TEXT_SECTION_ASM_OP): Use them.
  303. (DATA_SECTION_ASM_OP): Use them. Add.
  304. (ASM_FILE_START): Use them.
  305. * config/m68k/m68k.h (MASK_RODATA_TO_TEXT, TARGET_RODATA_TO_TEXT): Define.
  306. (TARGET_SWITCHES): Add -mrodata-to-text, -mno-rodata-to-text, -mnorodata-to-text.
  307. * config/m68k/m68k_ti.h (READONLY_DATA_SECTION_ASM_OP): Define.
  308. (JUMP_TABLES_IN_TEXT_SECTION): Define to 1.
  309. * real.h (significand_size): Fix definition.
  310. 2003-06-06 Kevin Kofler <Kevin@tigcc.ticalc.org>
  311. * 3.3.1-pre14 released.
  312. 2003-06-06 Kevin Kofler <Kevin@tigcc.ticalc.org>
  313. * Merge with GCC 3.3.1 20030602 snapshot.
  314. * unroll.c (unroll_loop): Delete unconditional jump first.
  315. 2003-04-23 Kevin Kofler <Kevin@tigcc.ticalc.org>
  316. * 3.3-pre13 released.
  317. 2003-04-23 Kevin Kofler <Kevin@tigcc.ticalc.org>
  318. * builtin_attrs.def: Add predefined attributes for *printf and *scanf (removed in FSF
  319. GCC) back.
  320. * builtins.def: Disable new *printf and *scanf builtins (added to FSF GCC).
  321. 2003-04-21 Kevin Kofler <Kevin@tigcc.ticalc.org>
  322. * Merge with GCC 3.3 20030421 snapshot.
  323. * Revert the following patch (added to FSF GCC):
  324. Wed Mar 5 15:45:40 CET 2003 Jan Hubicka <jh@suse.cz>
  325. * toplev.c (rest_of_compilation): Do duplicate loop headers when
  326. optimizing for size.
  327. 2003-03-16 Kevin Kofler <Kevin@tigcc.ticalc.org>
  328. * 3.3-pre12 released.
  329. 2003-03-16 Kevin Kofler <Kevin@tigcc.ticalc.org>
  330. * Applied the following proposed patch for PR 7871 (and 7595):
  331. 2003-03-10 James E Wilson <wilson@tuliptree.org>
  332. * flow.c (mark_set_1): Handle global_regs like the frame pointer.
  333. 2003-03-15 Kevin Kofler <Kevin@tigcc.ticalc.org>
  334. * expr.c (emit_block_move_libcall_fn): Use emit_library_call.
  335. (clear_storage_libcall_fn): Likewise.
  336. 2003-03-04 Kevin Kofler <Kevin@tigcc.ticalc.org>
  337. * 3.3-pre11 released.
  338. 2003-03-04 Kevin Kofler <Kevin@tigcc.ticalc.org>
  339. * Merge with GCC 3.3 20030303 snapshot.
  340. 2003-02-20 Kevin Kofler <Kevin@tigcc.ticalc.org>
  341. * 3.3-pre10 released.
  342. 2003-02-20 Kevin Kofler <Kevin@tigcc.ticalc.org>
  343. * final.c (alter_subreg): On big-endian machines, adjust offset of paradoxical
  344. subregs of memory to point to the correct place.
  345. 2003-02-14 Kevin Kofler <Kevin@tigcc.ticalc.org>
  346. * 3.3-pre9 released.
  347. 2003-02-14 Kevin Kofler <Kevin@tigcc.ticalc.org>
  348. * gcse.c (do_local_cprop): Handle global register variables.
  349. 2003-02-14 Kevin Kofler <Kevin@tigcc.ticalc.org>
  350. * 3.3-pre8 released.
  351. 2003-02-14 Kevin Kofler <Kevin@tigcc.ticalc.org>
  352. * Merge with GCC 3.3 20030210 snapshot.
  353. * gcse.c (do_local_cprop): Revert 20030104 patch. (Fixed differently in FSF tree.)
  354. 2003-01-04 Kevin Kofler <Kevin@tigcc.ticalc.org>
  355. * 3.3-pre7 released.
  356. 2003-01-04 Kevin Kofler <Kevin@tigcc.ticalc.org>
  357. * Merge with GCC 3.3 20031230 snapshot.
  358. * config/m68k/m68k_ti.h (TRAMPOLINE_ADJUST_ADDRESS): Add.
  359. * builtin-attrs.def: Add definitions for printf, fprintf.
  360. * c-format.c (check_format_types): Account for *printf and *scanf not actually supporting
  361. -mlong. Fix misplaced parentheses.
  362. 2003-01-01 Kevin Kofler <Kevin@tigcc.ticalc.org>
  363. * 3.3-pre6 released.
  364. 2003-01-04 Kevin Kofler <Kevin@tigcc.ticalc.org>
  365. * gcse.c (do_local_cprop): Don't touch %sp.
  366. 2002-12-27 Kevin Kofler <Kevin@tigcc.ticalc.org>
  367. * 3.3-pre5 released.
  368. 2002-12-27 Kevin Kofler <Kevin@tigcc.ticalc.org>
  369. * cppmacro.c (replace_args): Add missing "macro = node->value.macro;".
  370. * local-alloc.c (update_equiv_regs): Put abort back.
  371. 2002-12-26 Kevin Kofler <Kevin@tigcc.ticalc.org>
  372. * 3.3-pre4 released.
  373. 2002-12-26 Kevin Kofler <Kevin@tigcc.ticalc.org>
  374. * c-opts.c (COMMAND_LINE_OPTIONS): Change -fno-auto-octals to -fauto-octals.
  375. (c_common_decode_option): Likewise. Use preprocessor option.
  376. * cppinit.c: Add no_auto_octals option.
  377. * flags.h (flag_auto_octals): Remove.
  378. * toplev.c (flag_auto_octals): Remove.
  379. (struct f_options): Remove auto-octals.
  380. 2002-12-26 Kevin Kofler <Kevin@tigcc.ticalc.org>
  381. * 3.3-pre3 prepared for release (but not released).
  382. 2002-12-26 Kevin Kofler <Kevin@tigcc.ticalc.org>
  383. * cpplib.c (_cpp_init_internal_pragmas): Define #pragma poison in the global namespace.
  384. 2002-12-26 Kevin Kofler <Kevin@tigcc.ticalc.org>
  385. * 3.3-pre2 prepared for release (but not released).
  386. 2002-12-26 Kevin Kofler <Kevin@tigcc.ticalc.org>
  387. * config/m68k/coff.h (BSS_SECTION_ASM_OP): Disable.
  388. (ASM_OUTPUT_ALIGNED_BSS): Likewise.
  389. 2002-12-26 Kevin Kofler <Kevin@tigcc.ticalc.org>
  390. * 3.3-pre1 prepared for release (but not released).
  391. 2002-12-26 Kevin Kofler <Kevin@tigcc.ticalc.org>
  392. * Merge TIGCC patchset (1999-2002; changes by Jean Canazzi, François
  393. Révol, Sebastian Reichelt, Zeljko Juric and me; some changes by
  394. Fred Fish dated 1998-01-21 imported from AmigaOS-GCC):
  395. * attribs.c (decl_attributes): Use modified build_type_attribute_variant instead
  396. of build_type_copy.
  397. * builtin-attrs.def (expand_builtin_fputs): Disable. Also disable prototype.
  398. (fold_builtin_inf, fold_builtin_nan): Likewise.
  399. (expand_builtin): Don't use expand_builtin_fputs.
  400. (fold_builtin): Don't use fold_builtin_inf, fold_builtin_nan.
  401. (apply_args_size): Don't use register passing for __builtin_apply.
  402. * builtins.def: Disable stdio builtins.
  403. * c-common.c (builtin_define_with_hex_fp_value): Disable. Also disable prototype.
  404. (is_valid_printf_arglist): Likewise.
  405. (c_expand_builtin_printf, c_expand_builtin_fprintf): Likewise.
  406. (c_expand_builtin): Don't use c_expand_builtin_printf, c_expand_builtin_fprintf.
  407. (builtin_define_float_constants): Disable contents. Do nothing.
  408. * c-decl.c (pushdecl): If compiled using "nostub" mode, set a flag.
  409. (push_parm_decl): Add asmspec to support explicit register specification of
  410. parameters, and use when set.
  411. (build_compound_literal): Handle -fglobal-compound-literals.
  412. * c-format.c (print_char_table, scan_char_table): Add TI-specific formats.
  413. Remove unsupported formats.
  414. (check_format_types): Don't warn about differences in floating point format;
  415. they're all the same.
  416. * c-lex.c (interpret_float): Don't use real_from_string, real_convert. Use
  417. REAL_VALUE_ATOF instead.
  418. * c-opts.c (COMMAND_LINE_OPTIONS): Add -fno-auto-octals.
  419. (c_common_decode_option): Handle -fno-auto-octals.
  420. * c-parse.in (parms, parm, firstparm, myparms, my parm): Add support for explicit
  421. register specification for parameters.
  422. (absdcl_maybe_attribute): Likewise, rename to absdcl_maybeasm_maybe_attribute.
  423. Fix %expect directive.
  424. * c-pretty-print.c (pp_c_real_literal): Use REAL_VALUE_TO_STRING instead of
  425. real_to_decimal.
  426. * c-tree.h: (push_parm_decl): Add type of asmspec to prototype.
  427. * c-typeck.c (undeclared_variable_notice): Remove.
  428. (build_external_ref): Remove redundant undeclared variable notice.
  429. (default_function_array_conversion): Handle -fglobal-compound-literals.
  430. (build_unary_op): Likewise.
  431. (error_init): Use one-line instead of two-line diagnostic.
  432. (pedwarn_init): Likewise.
  433. (warning_init): Likewise.
  434. * collect2.c: Applied patch to allow collect2 to build on MinGW by Lev Serebryakov
  435. (2002-10-25).
  436. * config/dbxcoff.h (ASM_OUTPUT_SOURCE_LINE): Use absolute rather than
  437. function-relative COFF line numbers if TARGET_COFFABSLINES.
  438. * config/m68k/m68k-coff.h: (TARGET_CPU_DEFAULT, TARGET_DEFAULT): Define.
  439. Include m68k-ti.h instead of m68kemb.h.
  440. * config/m68k/m68k-ti.h: New file. Defines AMS-specific target settings.
  441. * config/m68k/m68k.c:
  442. Add support for '-mregparm' and explicit register specification for parameters:
  443. (comp_m68k_type_attributes): New function. Add prototype.
  444. (comp_amigaos_type_attributes): Likewise.
  445. (m68k_regparm_string, m68k_regparm): New variables.
  446. (override_options): Validate -mregparm and -mregparm= value.
  447. (m68k_init_cumulative_args, amigaos_init_cumulative_args): New functions.
  448. (m68k_function_arg_advance, amigaos_function_arg_advance): Likewise.
  449. (m68k_function_arg, amigaos_function_arg): Likewise.
  450. Add support for __attribute__((regparm)) and __attribute__((stkparm)):
  451. (TARGET_ATTRIBUTE_TABLE): Define.
  452. (TARGET_COMP_TYPE_ATTRIBUTES): Define.
  453. (m68k_attribute_table): New array.
  454. (m68k_handle_stkparm_attribute): New function. Add prototype.
  455. (m68k_handle_regparm_attribute): Likewise.
  456. Add AMS floating point support:
  457. (override_options): Don't select any flavor of XFmode.
  458. (output_move_himode_const): New function.
  459. (halfsinglemove_string): Likewise.
  460. (output_move_double): Handle BFmode.
  461. (floating_exact_log2): Disable contents. Abort if called.
  462. (print_operand): Disable handling of SFmode, DFmode, XFmode.
  463. (const_uint32_operand): Don't handle CONST_DOUBLE.
  464. Check for "INTVAL (op) >= 0" (possibly wrong?).
  465. Add support for -freg-relative:
  466. (TARGET_RELATION_REG): Declare, initialize.
  467. (print_operand): Handle TARGET_REG_RELATIVE.
  468. * config/m68k/m68k.h:
  469. Add support for '-mregparm' and explicit register specification for parameters:
  470. Update comment about TARGET_REGPARM.
  471. (TARGET_SWITCHES): Add "regparm", "noregparm", "no-regparm".
  472. (TARGET_OPTIONS): Add "regparm=".
  473. (EXPLICIT_REGPARM): Define.
  474. (FUNCTION_ARG_REGNO_P): Handle register parameters.
  475. (struct m68k_args): New structure.
  476. (CUMULATIVE_ARGS): Use it.
  477. (M68K_MAX_REGPARM): Define to 6.
  478. (M68K_DEFAULT_REGPARM): Define to 4.
  479. (INIT_CUMULATIVE_ARGS): Use amigaos_init_cumulative_args.
  480. (FUNCTION_ARG_ADVANCE): Use amigaos_function_arg_advance.
  481. (FUNCTION_ARG): Use amigaos_function_arg.
  482. (FUNCTION_ARG_PARTIAL_NREGS): Change to always 0.
  483. (m68k_regparm_string, m68k_regparm): Declare as extern.
  484. Add support for -freg-relative:
  485. (TARGET_RELATION_REG): Declare as extern.
  486. (MASK_TIOS, TARGET_TIOS): Define.
  487. (MASK_DIRECTFLOAT, TARGET_DIRECTFLOAT): Define.
  488. (MASK_REG_RELATIVE, TARGET_REG_RELATIVE): Define.
  489. (MASK_BADLINK, TARGET_BADLINK): Define.
  490. (MASK_COFFABSLINES, COFFABSLINES): Define.
  491. (MASK_NOSTUB, TARGET_NOSTUB): Define.
  492. (MASK_MERGE_SECTIONS, TARGET_MERGE_SECTIONS): Define.
  493. (TARGET_SWITCHES): Add "long", "badlink", "mlink", "tios", "merge-sections" and
  494. negations, "no-pcrel", "coff-abslines".
  495. (PARM_BOUNDARY): Set to 16 independently of TARGET_SHORT.
  496. (ASM_OUTPUT_COMMON): Guard with #ifndef.
  497. (ASM_OUTPUT_LOCAL): Likewise.
  498. (VALID_MACHINE_TYPE_ATTRIBUTE, COMP_TYPE_ATTRIBUTES): Add, but disabled.
  499. * config/m68k/m68k.md (movbf): New define_expand for AMS floating point support.
  500. (unnamed BF move): New define_insn for AMS floating point support.
  501. * config/m68k/smapbcd.h: New file. Defines macros for AMS floating point support.
  502. * cppexp.c (cpp_classify_number): Handle binary numbers and -fno-auto-octals.
  503. (cpp_interpret_integer): Handle binary numbers.
  504. * cpphash.h (mls_line, mls_col): Revert removal.
  505. * cpplex.c (unterminated): Likewise.
  506. (parse_string): Revert removal of multi-line strings. Use "unterminated".
  507. * cpplib.h (struct cpp_options): Add no_auto_octals.
  508. (CPP_N_BINARY): Define.
  509. * cppmacro.c (replace_args): If 'SYMSTR' is used with a string literal, convert
  510. automatically to 'SYMSTR_CONST'.
  511. * cppmain.c (scan_translation_unit): Revert removal of multi-line strings.
  512. * diagnostic.c (internal_error): Change bug report instructions.
  513. * dwarf2out.c (add_const_value_attribute): Handle BFmode (AMS floating point).
  514. * emit-rtl.c (const_double_htab_eq): Use REAL_VALUES_IDENTICAL instead of
  515. real_identical.
  516. (gen_lowpart_common): Disable handling of floating point. Handle BFmode instead.
  517. (constant_subword): Disable handling of floating point.
  518. (operand_subword): Handle BFmode (AMS floating point).
  519. * explow.c (copy_to_mode_reg): Handle BFmode by calling convert_move.
  520. * expr.c (convert_move): Add BFmode (AMS floating point) libcalls.
  521. (convert_modes): Handle BFmode (AMS floating point).
  522. (emit_block_move_via_libcall): Pass short integers to bcopy even if -mlong.
  523. (emit_block_move_libcall_fn): Likewise.
  524. (expand_assignment): Likewise.
  525. (clear_storage_via_libcall): Pass short integers to bzero even if -mlong.
  526. (clear_storage_libcall_fn): Likewise.
  527. (compress_float_constant): Don't call exact_real_truncate. Disable code using it.
  528. (emit_push_insn): Don't take a modulus by 0. Set offset to constant 0 instead.
  529. (is_zeros_p): Use REAL_VALUE_ISZERO instead of REAL_VALUES_IDENTICAL.
  530. * final.c (output_asm_insn): Add support for -freg-relative.
  531. (split_double): Disable code which doesn't work for AMS floats. Abort if reached.
  532. * flags.h (flag_auto_octals, flag_global_compound_literals): Declare extern.
  533. * flow.c (regno_uninitialized): Support explicit register specification of
  534. parameters.
  535. * fold-const.c (const_binop): Don't use REAL_ARITHMETIC.
  536. Use REAL_VALUE_TRUNCATE instead of
  537. real_value_truncate.
  538. (fold_convert): Don't fold real to integer conversion, as the required functions
  539. are not implemented.
  540. Use REAL_VALUE_TRUNCATE instead of real_value_truncate.
  541. (fold): Use temporaries for REAL_VALUE_NEGATE and REAL_VALUE_NEGATIVE because of
  542. side effects.
  543. * function.c (function_arg_regno_p): New function for explicit register
  544. specification of parameters.
  545. * gcc.c (process_command): Don't try to create gcc_exec_prefix from argv[0].
  546. (main): Don't load specs from exec prefix. Always use builtin specs.
  547. * libfuncs.h (enum libfunc_index): Add BFmode (AMS floating point) libcalls.
  548. Define extendsfbf2_libfunc etc.
  549. * local-alloc.c (update_equiv_regs): Disable abort.
  550. * machmode.def: Add BFmode (AMS floating point) to the machine modes.
  551. * optabs.c (expand_binop): Don't look for a wider mode for floating point numbers.
  552. (expand_twoval_binop): Likewise.
  553. (expand_unop): Likewise.
  554. (prepare_float_lib_cmp): Handle BFmode (AMS floating point).
  555. (expand_float): Don't special-case unsigned integers, as the required functions
  556. are not implemented.
  557. Handle BFmode (AMS floating point).
  558. (ftruncify): Likewise.
  559. (init_optabs): Initialize extendsfbf2_libfunc etc.
  560. * print-rtl.c (print_rtx): Don't use real_to_decimal, real_to_hexadecimal. Use
  561. REAL_VALUE_TO_STRING.
  562. * print-tree.c (print_node_brief): Use REAL_VALUE_TO_STRING instead of
  563. real_to_decimal.
  564. (print_node): Likewise.
  565. * real.c: Include setjmp.h.
  566. (NULL_PTR): Define.
  567. (REAL_DEBUG_INFO, REAL_DEBUG_SPRINTF): Define.
  568. Disable all static function prototypes.
  569. (real_arithmetic): Replace with own implementation.
  570. (exact_real_inverse): Likewise.
  571. (real_hash): Likewise.
  572. Disable all other functions.
  573. (ereal_to_int, ereal_from_int, ereal_from_uint): New functions.
  574. * real.h: Include smapbcd.h.
  575. (SMAP_BCD_FLOAT_FORMAT): Define.
  576. (REAL_WIDTH): Change definition to correspond to AMS floating point.
  577. (ereal_to_int, ereal_from_int, ereal_from_uint): Add prototypes.
  578. Disable everything else except the prototypes of real_arithmetic,
  579. exact_real_inverse, real_hash, real_value_from_int_cst,
  580. const_double_from_real_value, build_real, the REAL_VALUE_FROM_CONST_DOUBLE and
  581. CONST_DOUBLE_FROM_REAL_VALUE macros and the dconst0, dconst1, dconst2, dconstm1
  582. externs.
  583. * rtl.h (smap_bcd_float): Declare.
  584. (CONST_DOUBLE_REAL_VALUE): Use smap_bcd_float instead of struct real_value.
  585. * sdbout.c (sdbout_source_line): Use absolute, not function-relative, lines by
  586. default.
  587. * simplify-rtx.c (simplify_unary_operation): Use REAL_VALUE_TRUNCATE instead of
  588. real_value_truncate.
  589. (simplify_binary_operation): Likewise.
  590. * toplev.c: Include setjmp.h.
  591. (float_signal): Revert removal.
  592. (float_handler_set, float_handled, float_handler): Likewise.
  593. (set_float_handler): Likewise.
  594. (flag_auto_octals, flag_global_compound_literals): Initialize
  595. (struct f_options): Add auto-octals, global-compound-literals,
  596. global-cast-constructors.
  597. (decode_f_option): Add support for -freg-relative.
  598. (general_init): Set SIGFPE to float_handler, not crash_handler.
  599. (parse_options_and_default_flags): Set %d2 to call-used if TARGET_TIOS.
  600. * toplev.h (set_float_handler): Add prototype.
  601. * tree.c (real_zerop): Use REAL_VALUE_ISZERO instead of REAL_VALUES_EQUAL.
  602. * tree.h (struct real_value): Disable.
  603. (struct smap_bcd_float): Declare.
  604. (TREE_REAL_CST): Add cast to (REAL_VALUE_TYPE *) to convert struct smap_bcd_float
  605. to the typedef'ed smap_bcd_float.
  606. (struct tree_real_cst): Use struct smap_bcd_float instead of struct real_value.
  607. * varasm.c (assemble_real): Handle BFmode (AMS floating point).
  608. (const_hash_1): Add sanity check (code must not be zero).
  609. (decode_rtx_const): Use members of smap_bcd_float, not struct real_value, for
  610. member-by-member copying.
  611. * version.c (version_string): Add "TIGCC".
  612. (bug_report_url): Change from gnu.org URL to tigcc.ticalc.org URL.
  613. 2002-12-26 Kevin Kofler <Kevin@tigcc.ticalc.org>
  614. * Import GCC 3.3 20021223 snapshot.