~ubuntu-branches/ubuntu/trusty/gcc-4.8/trusty-proposed

« back to all changes in this revision

Viewing changes to debian/patches/svn-updates.diff

  • Committer: Package Import Robot
  • Author(s): Matthias Klose
  • Date: 2013-12-20 18:24:08 UTC
  • Revision ID: package-import@ubuntu.com-20131220182408-n58ja3mqwwrodxa9
Tags: 4.8.2-10ubuntu2
* Update to SVN 20131220 (r206145) from the gcc-4_8-branch.
* Set the goarch to arm64 for aarch64-linux-gnu.
* Fix statically linked gccgo binaries on AArch64 (Michael Hudson).
  LP: #1261604.
* Merge accumulated Ada changes from gnat-4.8.
* Update gnat build dependencies when not built from a separate source.

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
# DP: updates from the 4.8 branch upto 20131212 (r205924).
 
1
# DP: updates from the 4.8 branch upto 20131220 (r206145).
2
2
 
3
3
last_updated()
4
4
{
5
5
        cat > ${dir}LAST_UPDATED <<EOF
6
 
Fri Dec 13 01:00:13 CET 2013
7
 
Fri Dec 13 00:00:13 UTC 2013 (revision 205948)
 
6
Fri Dec 20 11:57:46 CET 2013
 
7
Fri Dec 20 10:57:46 UTC 2013 (revision 206145)
8
8
EOF
9
9
}
10
10
 
2990
2990
===================================================================
2991
2991
--- a/src/libstdc++-v3/ChangeLog        (.../tags/gcc_4_8_2_release)
2992
2992
+++ b/src/libstdc++-v3/ChangeLog        (.../branches/gcc-4_8-branch)
2993
 
@@ -1,3 +1,62 @@
 
2993
@@ -1,3 +1,66 @@
 
2994
+2013-12-15  H.J. Lu  <hongjiu.lu@intel.com>
 
2995
+
 
2996
+       * config/abi/post/x86_64-linux-gnu/x32/baseline_symbols.txt: Update.
 
2997
+
2994
2998
+2013-11-22  Jonathan Wakely  <jwakely.gcc@gmail.com>
2995
2999
+
2996
3000
+       * acinclude.m4 (libtool_VERSION): Bump.
3148
3152
+  std::unique_ptr<void, D> y;
3149
3153
+  std::shared_ptr<void> x = std::move(y);
3150
3154
+}
 
3155
Index: libstdc++-v3/config/abi/post/x86_64-linux-gnu/x32/baseline_symbols.txt
 
3156
===================================================================
 
3157
--- a/src/libstdc++-v3/config/abi/post/x86_64-linux-gnu/x32/baseline_symbols.txt        (.../tags/gcc_4_8_2_release)
 
3158
+++ b/src/libstdc++-v3/config/abi/post/x86_64-linux-gnu/x32/baseline_symbols.txt        (.../branches/gcc-4_8-branch)
 
3159
@@ -403,6 +403,7 @@
 
3160
 FUNC:_ZNKSt15basic_streambufIwSt11char_traitsIwEE6getlocEv@@GLIBCXX_3.4
 
3161
 FUNC:_ZNKSt15basic_stringbufIcSt11char_traitsIcESaIcEE3strEv@@GLIBCXX_3.4
 
3162
 FUNC:_ZNKSt15basic_stringbufIwSt11char_traitsIwESaIwEE3strEv@@GLIBCXX_3.4
 
3163
+FUNC:_ZNKSt17bad_function_call4whatEv@@GLIBCXX_3.4.18
 
3164
 FUNC:_ZNKSt18basic_stringstreamIcSt11char_traitsIcESaIcEE3strEv@@GLIBCXX_3.4
 
3165
 FUNC:_ZNKSt18basic_stringstreamIcSt11char_traitsIcESaIcEE5rdbufEv@@GLIBCXX_3.4
 
3166
 FUNC:_ZNKSt18basic_stringstreamIwSt11char_traitsIwESaIwEE3strEv@@GLIBCXX_3.4
 
3167
@@ -590,6 +591,8 @@
 
3168
 FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE6do_putES3_RSt8ios_basewm@@GLIBCXX_3.4
 
3169
 FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE6do_putES3_RSt8ios_basewx@@GLIBCXX_3.4
 
3170
 FUNC:_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE6do_putES3_RSt8ios_basewy@@GLIBCXX_3.4
 
3171
+FUNC:_ZNKSt8__detail20_Prime_rehash_policy11_M_next_bktEj@@GLIBCXX_3.4.18
 
3172
+FUNC:_ZNKSt8__detail20_Prime_rehash_policy14_M_need_rehashEjjj@@GLIBCXX_3.4.18
 
3173
 FUNC:_ZNKSt8bad_cast4whatEv@@GLIBCXX_3.4.9
 
3174
 FUNC:_ZNKSt8ios_base7failure4whatEv@@GLIBCXX_3.4
 
3175
 FUNC:_ZNKSt8messagesIcE18_M_convert_to_charERKSs@@GLIBCXX_3.4
 
3176
@@ -1207,6 +1210,7 @@
 
3177
 FUNC:_ZNSt11regex_errorD0Ev@@GLIBCXX_3.4.15
 
3178
 FUNC:_ZNSt11regex_errorD1Ev@@GLIBCXX_3.4.15
 
3179
 FUNC:_ZNSt11regex_errorD2Ev@@GLIBCXX_3.4.15
 
3180
+FUNC:_ZNSt11this_thread11__sleep_forENSt6chrono8durationIxSt5ratioILx1ELx1EEEENS1_IxS2_ILx1ELx1000000000EEEE@@GLIBCXX_3.4.18
 
3181
 FUNC:_ZNSt12__basic_fileIcE2fdEv@@GLIBCXX_3.4
 
3182
 FUNC:_ZNSt12__basic_fileIcE4fileEv@@GLIBCXX_3.4.1
 
3183
 FUNC:_ZNSt12__basic_fileIcE4openEPKcSt13_Ios_Openmodei@@GLIBCXX_3.4
 
3184
@@ -1485,6 +1489,11 @@
 
3185
 FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEElsEt@@GLIBCXX_3.4
 
3186
 FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEElsEx@@GLIBCXX_3.4
 
3187
 FUNC:_ZNSt13basic_ostreamIwSt11char_traitsIwEElsEy@@GLIBCXX_3.4
 
3188
+FUNC:_ZNSt13random_device14_M_init_pretr1ERKSs@@GLIBCXX_3.4.18
 
3189
+FUNC:_ZNSt13random_device16_M_getval_pretr1Ev@@GLIBCXX_3.4.18
 
3190
+FUNC:_ZNSt13random_device7_M_finiEv@@GLIBCXX_3.4.18
 
3191
+FUNC:_ZNSt13random_device7_M_initERKSs@@GLIBCXX_3.4.18
 
3192
+FUNC:_ZNSt13random_device9_M_getvalEv@@GLIBCXX_3.4.18
 
3193
 FUNC:_ZNSt13runtime_errorC1ERKSs@@GLIBCXX_3.4
 
3194
 FUNC:_ZNSt13runtime_errorC2ERKSs@@GLIBCXX_3.4
 
3195
 FUNC:_ZNSt13runtime_errorD0Ev@@GLIBCXX_3.4
 
3196
@@ -1929,6 +1938,8 @@
 
3197
 FUNC:_ZNSt6__norm15_List_node_base8transferEPS0_S1_@@GLIBCXX_3.4.9
 
3198
 FUNC:_ZNSt6__norm15_List_node_base9_M_unhookEv@@GLIBCXX_3.4.14
 
3199
 FUNC:_ZNSt6chrono12system_clock3nowEv@@GLIBCXX_3.4.11
 
3200
+FUNC:_ZNSt6chrono3_V212steady_clock3nowEv@@GLIBCXX_3.4.19
 
3201
+FUNC:_ZNSt6chrono3_V212system_clock3nowEv@@GLIBCXX_3.4.19
 
3202
 FUNC:_ZNSt6gslice8_IndexerC1EjRKSt8valarrayIjES4_@@GLIBCXX_3.4
 
3203
 FUNC:_ZNSt6gslice8_IndexerC2EjRKSt8valarrayIjES4_@@GLIBCXX_3.4
 
3204
 FUNC:_ZNSt6locale11_M_coalesceERKS_S1_i@@GLIBCXX_3.4
 
3205
@@ -2467,6 +2478,7 @@
 
3206
 FUNC:__cxa_guard_release@@CXXABI_1.3
 
3207
 FUNC:__cxa_pure_virtual@@CXXABI_1.3
 
3208
 FUNC:__cxa_rethrow@@CXXABI_1.3
 
3209
+FUNC:__cxa_thread_atexit@@CXXABI_1.3.7
 
3210
 FUNC:__cxa_throw@@CXXABI_1.3
 
3211
 FUNC:__cxa_tm_cleanup@@CXXABI_TM_1
 
3212
 FUNC:__cxa_vec_cctor@@CXXABI_1.3
 
3213
@@ -2491,6 +2503,7 @@
 
3214
 OBJECT:0:CXXABI_1.3.4
 
3215
 OBJECT:0:CXXABI_1.3.5
 
3216
 OBJECT:0:CXXABI_1.3.6
 
3217
+OBJECT:0:CXXABI_1.3.7
 
3218
 OBJECT:0:CXXABI_TM_1
 
3219
 OBJECT:0:GLIBCXX_3.4
 
3220
 OBJECT:0:GLIBCXX_3.4.1
 
3221
@@ -2502,6 +2515,8 @@
 
3222
 OBJECT:0:GLIBCXX_3.4.15
 
3223
 OBJECT:0:GLIBCXX_3.4.16
 
3224
 OBJECT:0:GLIBCXX_3.4.17
 
3225
+OBJECT:0:GLIBCXX_3.4.18
 
3226
+OBJECT:0:GLIBCXX_3.4.19
 
3227
 OBJECT:0:GLIBCXX_3.4.2
 
3228
 OBJECT:0:GLIBCXX_3.4.3
 
3229
 OBJECT:0:GLIBCXX_3.4.4
 
3230
@@ -3033,6 +3048,8 @@
 
3231
 OBJECT:1:_ZNSt21__numeric_limits_base9is_moduloE@@GLIBCXX_3.4
 
3232
 OBJECT:1:_ZNSt21__numeric_limits_base9is_signedE@@GLIBCXX_3.4
 
3233
 OBJECT:1:_ZNSt6chrono12system_clock12is_monotonicE@@GLIBCXX_3.4.11
 
3234
+OBJECT:1:_ZNSt6chrono3_V212steady_clock9is_steadyE@@GLIBCXX_3.4.19
 
3235
+OBJECT:1:_ZNSt6chrono3_V212system_clock9is_steadyE@@GLIBCXX_3.4.19
 
3236
 OBJECT:1:_ZSt10adopt_lock@@GLIBCXX_3.4.11
 
3237
 OBJECT:1:_ZSt10defer_lock@@GLIBCXX_3.4.11
 
3238
 OBJECT:1:_ZSt11try_to_lock@@GLIBCXX_3.4.11
3151
3239
Index: libstdc++-v3/acinclude.m4
3152
3240
===================================================================
3153
3241
--- a/src/libstdc++-v3/acinclude.m4     (.../tags/gcc_4_8_2_release)
4447
4535
+++ b/src/gcc/DATESTAMP (.../branches/gcc-4_8-branch)
4448
4536
@@ -1 +1 @@
4449
4537
-20131016
4450
 
+20131212
 
4538
+20131220
4451
4539
Index: gcc/configure
4452
4540
===================================================================
4453
4541
--- a/src/gcc/configure (.../tags/gcc_4_8_2_release)
4637
4725
===================================================================
4638
4726
--- a/src/gcc/ChangeLog (.../tags/gcc_4_8_2_release)
4639
4727
+++ b/src/gcc/ChangeLog (.../branches/gcc-4_8-branch)
4640
 
@@ -1,3 +1,716 @@
 
4728
@@ -1,3 +1,790 @@
 
4729
+2013-12-19  James Greenhalgh  <james.greenhalgh@arm.com>
 
4730
+
 
4731
+       Backport from Mainline.
 
4732
+       2013-05-01  James Greenhalgh  <james.greenhalgh@arm.com>
 
4733
+
 
4734
+       * config/aarch64/aarch64-simd-builtins.def (cmhs): Rename to...
 
4735
+       (cmgeu): ...This.
 
4736
+       (cmhi): Rename to...
 
4737
+       (cmgtu): ...This.
 
4738
+       * config/aarch64/aarch64-simd.md
 
4739
+       (simd_mode): Add SF.
 
4740
+       (aarch64_vcond_internal): Use new names for unsigned comparison insns.
 
4741
+       (aarch64_cm<optab><mode>): Rewrite to not use UNSPECs.
 
4742
+       * config/aarch64/aarch64.md (*cstore<mode>_neg): Rename to...
 
4743
+       (cstore<mode>_neg): ...This.
 
4744
+       * config/aarch64/iterators.md
 
4745
+       (VALLF): new.
 
4746
+       (unspec): Remove UNSPEC_CM<EQ, LE, LT, GE, GT, HS, HI, TST>.
 
4747
+       (COMPARISONS): New.
 
4748
+       (UCOMPARISONS): Likewise.
 
4749
+       (optab): Add missing comparisons.
 
4750
+       (n_optab): New.
 
4751
+       (cmp_1): Likewise.
 
4752
+       (cmp_2): Likewise.
 
4753
+       (CMP): Likewise.
 
4754
+       (cmp): Remove.
 
4755
+       (VCMP_S): Likewise.
 
4756
+       (VCMP_U): Likewise.
 
4757
+       (V_cmp_result): Add DF, SF modes.
 
4758
+       (v_cmp_result): Likewise.
 
4759
+       (v): Likewise.
 
4760
+       (vmtype): Likewise.
 
4761
+       * config/aarch64/predicates.md (aarch64_reg_or_fp_zero): New.
 
4762
+
 
4763
+       Partial Backport from mainline.
 
4764
+       2013-05-01  James Greenhalgh  <james.greenhalgh@arm.com>
 
4765
+
 
4766
+       * config/aarch64/arm_neon.h
 
4767
+       (vc<eq, lt, le, gt, ge, tst><qsd>_<u><8,16,32,64>): Remap
 
4768
+       to builtins or C as appropriate.
 
4769
+
 
4770
+2013-12-19  Dominik Vogt  <vogt@linux.vnet.ibm.com>
 
4771
+           Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
 
4772
+
 
4773
+       Backport from mainline
 
4774
+       2013-12-19  Dominik Vogt  <vogt@linux.vnet.ibm.com>
 
4775
+       * config/s390/s390.c (s390_hotpatch_trampoline_halfwords_default): New
 
4776
+       constant
 
4777
+       (s390_hotpatch_trampoline_halfwords_max): New constant
 
4778
+       (s390_hotpatch_trampoline_halfwords): New static variable
 
4779
+       (get_hotpatch_attribute): New function
 
4780
+       (s390_handle_hotpatch_attribute): New function
 
4781
+       (s390_attribute_table): New target specific attribute table to implement
 
4782
+       the hotpatch attribute
 
4783
+       (s390_option_override): Parse hotpatch options
 
4784
+       (s390_function_num_hotpatch_trampoline_halfwords): New function
 
4785
+       (s390_can_inline_p): Implement target hook to
 
4786
+       suppress hotpatching for explicitly inlined functions
 
4787
+       (s390_asm_output_function_label): Generate hotpatch prologue
 
4788
+       (TARGET_ATTRIBUTE_TABLE): Define to implement target attribute table
 
4789
+       (TARGET_CAN_INLINE_P): Define to implement target hook
 
4790
+       * config/s390/s390.opt (mhotpatch): New options -mhotpatch, -mhotpatch=
 
4791
+       * config/s390/s390-protos.h (s390_asm_output_function_label): Add
 
4792
+       prototype
 
4793
+       * config/s390/s390.h (ASM_OUTPUT_FUNCTION_LABEL): Target specific
 
4794
+       function label generation for hotpatching
 
4795
+       (FUNCTION_BOUNDARY): Align functions to eight bytes
 
4796
+       * doc/extend.texi: Document hotpatch attribute
 
4797
+       * doc/invoke.texi: Document -mhotpatch option
 
4798
+
 
4799
+2013-12-18  Eric Botcazou  <ebotcazou@adacore.com>
 
4800
+
 
4801
+       * config/arm/arm.c (arm_expand_epilogue_apcs_frame): Fix thinko.
 
4802
+
4641
4803
+2013-12-12  Vladimir Makarov  <vmakarov@redhat.com>
4642
4804
+
4643
4805
+       PR middle-end/59470
5354
5516
 2013-10-16  Release Manager
5355
5517
 
5356
5518
        * GCC 4.8.2 released.
5357
 
@@ -639,7 +1357,7 @@
 
5519
@@ -639,7 +1431,7 @@
5358
5520
 2013-07-31  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
5359
5521
 
5360
5522
        Backport from mainline
5449
5611
+
5450
5612
+/* { dg-final { scan-assembler-times "vrinta.f64\td\[0-9\]+" 1 } } */
5451
5613
+
 
5614
Index: gcc/testsuite/gcc.target/aarch64/scalar_intrinsics.c
 
5615
===================================================================
 
5616
--- a/src/gcc/testsuite/gcc.target/aarch64/scalar_intrinsics.c  (.../tags/gcc_4_8_2_release)
 
5617
+++ b/src/gcc/testsuite/gcc.target/aarch64/scalar_intrinsics.c  (.../branches/gcc-4_8-branch)
 
5618
@@ -1,8 +1,14 @@
 
5619
 /* { dg-do compile } */
 
5620
 /* { dg-options "-O2" } */
 
5621
 
 
5622
-#include "../../../config/aarch64/arm_neon.h"
 
5623
+#include <arm_neon.h>
 
5624
 
 
5625
+/* Used to force a variable to a SIMD register.  */
 
5626
+#define force_simd(V1)   asm volatile ("mov %d0, %1.d[0]"      \
 
5627
+          : "=w"(V1)                                           \
 
5628
+          : "w"(V1)                                            \
 
5629
+          : /* No clobbers */);
 
5630
+
 
5631
 /* { dg-final { scan-assembler-times "\\tadd\\tx\[0-9\]+" 2 } } */
 
5632
 
 
5633
 uint64x1_t
 
5634
@@ -31,7 +37,12 @@
 
5635
 uint64x1_t
 
5636
 test_vceqd_s64 (int64x1_t a, int64x1_t b)
 
5637
 {
 
5638
-  return vceqd_s64 (a, b);
 
5639
+  uint64x1_t res;
 
5640
+  force_simd (a);
 
5641
+  force_simd (b);
 
5642
+  res = vceqd_s64 (a, b);
 
5643
+  force_simd (res);
 
5644
+  return res;
 
5645
 }
 
5646
 
 
5647
 /* { dg-final { scan-assembler-times "\\tcmeq\\td\[0-9\]+, d\[0-9\]+, #?0" 1 } } */
 
5648
@@ -39,7 +50,11 @@
 
5649
 uint64x1_t
 
5650
 test_vceqzd_s64 (int64x1_t a)
 
5651
 {
 
5652
-  return vceqzd_s64 (a);
 
5653
+  uint64x1_t res;
 
5654
+  force_simd (a);
 
5655
+  res = vceqzd_s64 (a);
 
5656
+  force_simd (res);
 
5657
+  return res;
 
5658
 }
 
5659
 
 
5660
 /* { dg-final { scan-assembler-times "\\tcmge\\td\[0-9\]+, d\[0-9\]+, d\[0-9\]+" 2 } } */
 
5661
@@ -47,21 +62,36 @@
 
5662
 uint64x1_t
 
5663
 test_vcged_s64 (int64x1_t a, int64x1_t b)
 
5664
 {
 
5665
-  return vcged_s64 (a, b);
 
5666
+  uint64x1_t res;
 
5667
+  force_simd (a);
 
5668
+  force_simd (b);
 
5669
+  res = vcged_s64 (a, b);
 
5670
+  force_simd (res);
 
5671
+  return res;
 
5672
 }
 
5673
 
 
5674
 uint64x1_t
 
5675
 test_vcled_s64 (int64x1_t a, int64x1_t b)
 
5676
 {
 
5677
-  return vcled_s64 (a, b);
 
5678
+  uint64x1_t res;
 
5679
+  force_simd (a);
 
5680
+  force_simd (b);
 
5681
+  res = vcled_s64 (a, b);
 
5682
+  force_simd (res);
 
5683
+  return res;
 
5684
 }
 
5685
 
 
5686
-/* { dg-final { scan-assembler-times "\\tcmge\\td\[0-9\]+, d\[0-9\]+, #?0" 1 } } */
 
5687
+/* Idiom recognition will cause this testcase not to generate
 
5688
+   the expected cmge instruction, so do not check for it.  */
 
5689
 
 
5690
 uint64x1_t
 
5691
 test_vcgezd_s64 (int64x1_t a)
 
5692
 {
 
5693
-  return vcgezd_s64 (a);
 
5694
+  uint64x1_t res;
 
5695
+  force_simd (a);
 
5696
+  res = vcgezd_s64 (a);
 
5697
+  force_simd (res);
 
5698
+  return res;
 
5699
 }
 
5700
 
 
5701
 /* { dg-final { scan-assembler-times "\\tcmhs\\td\[0-9\]+, d\[0-9\]+, d\[0-9\]+" 1 } } */
 
5702
@@ -69,7 +99,12 @@
 
5703
 uint64x1_t
 
5704
 test_vcged_u64 (uint64x1_t a, uint64x1_t b)
 
5705
 {
 
5706
-  return vcged_u64 (a, b);
 
5707
+  uint64x1_t res;
 
5708
+  force_simd (a);
 
5709
+  force_simd (b);
 
5710
+  res = vcged_u64 (a, b);
 
5711
+  force_simd (res);
 
5712
+  return res;
 
5713
 }
 
5714
 
 
5715
 /* { dg-final { scan-assembler-times "\\tcmgt\\td\[0-9\]+, d\[0-9\]+, d\[0-9\]+" 2 } } */
 
5716
@@ -77,13 +112,23 @@
 
5717
 uint64x1_t
 
5718
 test_vcgtd_s64 (int64x1_t a, int64x1_t b)
 
5719
 {
 
5720
-  return vcgtd_s64 (a, b);
 
5721
+  uint64x1_t res;
 
5722
+  force_simd (a);
 
5723
+  force_simd (b);
 
5724
+  res = vcgtd_s64 (a, b);
 
5725
+  force_simd (res);
 
5726
+  return res;
 
5727
 }
 
5728
 
 
5729
 uint64x1_t
 
5730
 test_vcltd_s64 (int64x1_t a, int64x1_t b)
 
5731
 {
 
5732
-  return vcltd_s64 (a, b);
 
5733
+  uint64x1_t res;
 
5734
+  force_simd (a);
 
5735
+  force_simd (b);
 
5736
+  res = vcltd_s64 (a, b);
 
5737
+  force_simd (res);
 
5738
+  return res;
 
5739
 }
 
5740
 
 
5741
 /* { dg-final { scan-assembler-times "\\tcmgt\\td\[0-9\]+, d\[0-9\]+, #?0" 1 } } */
 
5742
@@ -91,7 +136,11 @@
 
5743
 uint64x1_t
 
5744
 test_vcgtzd_s64 (int64x1_t a)
 
5745
 {
 
5746
-  return vcgtzd_s64 (a);
 
5747
+  uint64x1_t res;
 
5748
+  force_simd (a);
 
5749
+  res = vcgtzd_s64 (a);
 
5750
+  force_simd (res);
 
5751
+  return res;
 
5752
 }
 
5753
 
 
5754
 /* { dg-final { scan-assembler-times "\\tcmhi\\td\[0-9\]+, d\[0-9\]+, d\[0-9\]+" 1 } } */
 
5755
@@ -99,7 +148,12 @@
 
5756
 uint64x1_t
 
5757
 test_vcgtd_u64 (uint64x1_t a, uint64x1_t b)
 
5758
 {
 
5759
-  return vcgtd_u64 (a, b);
 
5760
+  uint64x1_t res;
 
5761
+  force_simd (a);
 
5762
+  force_simd (b);
 
5763
+  res = vcgtd_u64 (a, b);
 
5764
+  force_simd (res);
 
5765
+  return res;
 
5766
 }
 
5767
 
 
5768
 /* { dg-final { scan-assembler-times "\\tcmle\\td\[0-9\]+, d\[0-9\]+, #?0" 1 } } */
 
5769
@@ -107,15 +161,24 @@
 
5770
 uint64x1_t
 
5771
 test_vclezd_s64 (int64x1_t a)
 
5772
 {
 
5773
-  return vclezd_s64 (a);
 
5774
+  uint64x1_t res;
 
5775
+  force_simd (a);
 
5776
+  res = vclezd_s64 (a);
 
5777
+  force_simd (res);
 
5778
+  return res;
 
5779
 }
 
5780
 
 
5781
-/* { dg-final { scan-assembler-times "\\tcmlt\\td\[0-9\]+, d\[0-9\]+, #?0" 1 } } */
 
5782
+/* Idiom recognition will cause this testcase not to generate
 
5783
+   the expected cmlt instruction, so do not check for it.  */
 
5784
 
 
5785
 uint64x1_t
 
5786
 test_vcltzd_s64 (int64x1_t a)
 
5787
 {
 
5788
-  return vcltzd_s64 (a);
 
5789
+  uint64x1_t res;
 
5790
+  force_simd (a);
 
5791
+  res = vcltzd_s64 (a);
 
5792
+  force_simd (res);
 
5793
+  return res;
 
5794
 }
 
5795
 
 
5796
 /* { dg-final { scan-assembler-times "\\tdup\\tb\[0-9\]+, v\[0-9\]+\.b" 2 } } */
 
5797
@@ -179,13 +242,23 @@
 
5798
 int64x1_t
 
5799
 test_vtst_s64 (int64x1_t a, int64x1_t b)
 
5800
 {
 
5801
-  return vtstd_s64 (a, b);
 
5802
+  uint64x1_t res;
 
5803
+  force_simd (a);
 
5804
+  force_simd (b);
 
5805
+  res = vtstd_s64 (a, b);
 
5806
+  force_simd (res);
 
5807
+  return res;
 
5808
 }
 
5809
 
 
5810
 uint64x1_t
 
5811
 test_vtst_u64 (uint64x1_t a, uint64x1_t b)
 
5812
 {
 
5813
-  return vtstd_u64 (a, b);
 
5814
+  uint64x1_t res;
 
5815
+  force_simd (a);
 
5816
+  force_simd (b);
 
5817
+  res = vtstd_s64 (a, b);
 
5818
+  force_simd (res);
 
5819
+  return res;
 
5820
 }
 
5821
 
 
5822
 /* { dg-final { scan-assembler-times "\\taddp\\td\[0-9\]+, v\[0-9\]+\.2d" 1 } } */
 
5823
@@ -722,8 +795,11 @@
 
5824
   return vrshld_u64 (a, b);
 
5825
 }
 
5826
 
 
5827
-/* { dg-final { scan-assembler-times "\\tasr\\tx\[0-9\]+" 1 } } */
 
5828
+/* Other intrinsics can generate an asr instruction (vcltzd, vcgezd),
 
5829
+   so we cannot check scan-assembler-times.  */
 
5830
 
 
5831
+/* { dg-final { scan-assembler "\\tasr\\tx\[0-9\]+" } } */
 
5832
+
 
5833
 int64x1_t
 
5834
 test_vshrd_n_s64 (int64x1_t a)
 
5835
 {
5452
5836
Index: gcc/testsuite/gcc.target/i386/pr59405.c
5453
5837
===================================================================
5454
5838
--- a/src/gcc/testsuite/gcc.target/i386/pr59405.c       (.../tags/gcc_4_8_2_release)
5478
5862
+  if (foo32x2_be (b) != 1.0f)
5479
5863
+    abort ();
5480
5864
+}
 
5865
Index: gcc/testsuite/gcc.target/i386/avx-vzeroupper-17.c
 
5866
===================================================================
 
5867
--- a/src/gcc/testsuite/gcc.target/i386/avx-vzeroupper-17.c     (.../tags/gcc_4_8_2_release)
 
5868
+++ b/src/gcc/testsuite/gcc.target/i386/avx-vzeroupper-17.c     (.../branches/gcc-4_8-branch)
 
5869
@@ -1,5 +1,5 @@
 
5870
 /* { dg-do compile { target lp64 } } */
 
5871
-/* { dg-options "-O2 -mavx -mabi=ms -mtune=generic -dp" } */
 
5872
+/* { dg-options "-O2 -mavx -mabi=ms -maccumulate-outgoing-args -dp" } */
 
5873
 
 
5874
 typedef float __m256 __attribute__ ((__vector_size__ (32), __may_alias__));
 
5875
 
5481
5876
Index: gcc/testsuite/gcc.target/i386/pr59034-1.c
5482
5877
===================================================================
5483
5878
--- a/src/gcc/testsuite/gcc.target/i386/pr59034-1.c     (.../tags/gcc_4_8_2_release)
5525
5920
 
5526
5921
   u.x = _mm256_set_pd (39578.467285, 7856.342941, 85632.783567, 47563.234215);
5527
5922
 
 
5923
Index: gcc/testsuite/gcc.target/i386/pr57003.c
 
5924
===================================================================
 
5925
--- a/src/gcc/testsuite/gcc.target/i386/pr57003.c       (.../tags/gcc_4_8_2_release)
 
5926
+++ b/src/gcc/testsuite/gcc.target/i386/pr57003.c       (.../branches/gcc-4_8-branch)
 
5927
@@ -1,6 +1,6 @@
 
5928
 /* PR rtl-optimization/57003 */
 
5929
 /* { dg-do run } */
 
5930
-/* { dg-options "-O2" } */
 
5931
+/* { dg-options "-O2 -maccumulate-outgoing-args" } */
 
5932
 
 
5933
 #define N 2001
 
5934
 unsigned short *b, *c, *d;
 
5935
Index: gcc/testsuite/gcc.target/i386/avx-vzeroupper-18.c
 
5936
===================================================================
 
5937
--- a/src/gcc/testsuite/gcc.target/i386/avx-vzeroupper-18.c     (.../tags/gcc_4_8_2_release)
 
5938
+++ b/src/gcc/testsuite/gcc.target/i386/avx-vzeroupper-18.c     (.../branches/gcc-4_8-branch)
 
5939
@@ -1,5 +1,5 @@
 
5940
 /* { dg-do compile { target lp64 } } */
 
5941
-/* { dg-options "-O0 -mavx -mabi=ms -mtune=generic -dp" } */
 
5942
+/* { dg-options "-O0 -mavx -mabi=ms -maccumulate-outgoing-args -dp" } */
 
5943
 
 
5944
 typedef float __m256 __attribute__ ((__vector_size__ (32), __may_alias__));
 
5945
 
5528
5946
Index: gcc/testsuite/gcc.target/i386/sse2-movapd-1.c
5529
5947
===================================================================
5530
5948
--- a/src/gcc/testsuite/gcc.target/i386/sse2-movapd-1.c (.../tags/gcc_4_8_2_release)
5697
6115
+  }
5698
6116
+  xrv->xrv_rv = 0;
5699
6117
+}
 
6118
Index: gcc/testsuite/gcc.target/i386/avx-vzeroupper-16.c
 
6119
===================================================================
 
6120
--- a/src/gcc/testsuite/gcc.target/i386/avx-vzeroupper-16.c     (.../tags/gcc_4_8_2_release)
 
6121
+++ b/src/gcc/testsuite/gcc.target/i386/avx-vzeroupper-16.c     (.../branches/gcc-4_8-branch)
 
6122
@@ -1,5 +1,5 @@
 
6123
 /* { dg-do compile { target lp64 } } */
 
6124
-/* { dg-options "-O2 -mavx -mabi=ms -mtune=generic -dp" } */
 
6125
+/* { dg-options "-O2 -mavx -mabi=ms -maccumulate-outgoing-args -dp" } */
 
6126
 
 
6127
 typedef float __m256 __attribute__ ((__vector_size__ (32), __may_alias__));
 
6128
 
5700
6129
Index: gcc/testsuite/gcc.target/i386/pr30315.c
5701
6130
===================================================================
5702
6131
--- a/src/gcc/testsuite/gcc.target/i386/pr30315.c       (.../tags/gcc_4_8_2_release)
5765
6194
-}
5766
6195
-
5767
6196
-MINUSCCZEXT
 
6197
Index: gcc/testsuite/gcc.target/i386/pr43869.c
 
6198
===================================================================
 
6199
--- a/src/gcc/testsuite/gcc.target/i386/pr43869.c       (.../tags/gcc_4_8_2_release)
 
6200
+++ b/src/gcc/testsuite/gcc.target/i386/pr43869.c       (.../branches/gcc-4_8-branch)
 
6201
@@ -1,4 +1,5 @@
 
6202
 /* { dg-do compile { target lp64 } } */
 
6203
+/* { dg-options "-maccumulate-outgoing-args" } */
 
6204
 
 
6205
 int __attribute__((__noinline__))
 
6206
 bugged(float f1, float f2, float f3, float f4,
 
6207
Index: gcc/testsuite/gcc.target/i386/pr43662.c
 
6208
===================================================================
 
6209
--- a/src/gcc/testsuite/gcc.target/i386/pr43662.c       (.../tags/gcc_4_8_2_release)
 
6210
+++ b/src/gcc/testsuite/gcc.target/i386/pr43662.c       (.../branches/gcc-4_8-branch)
 
6211
@@ -1,5 +1,5 @@
 
6212
 /* { dg-do compile { target lp64 } } */
 
6213
-/* { dg-options "-O2" } */
 
6214
+/* { dg-options "-O2 -maccumulate-outgoing-args" } */
 
6215
 
 
6216
 void __attribute__ ((ms_abi)) foo (void)
 
6217
 {
5768
6218
Index: gcc/testsuite/gcc.target/i386/avx-vmovapd-256-1.c
5769
6219
===================================================================
5770
6220
--- a/src/gcc/testsuite/gcc.target/i386/avx-vmovapd-256-1.c     (.../tags/gcc_4_8_2_release)
5778
6228
 
5779
6229
   u.x = test (e);
5780
6230
 
 
6231
Index: gcc/testsuite/gcc.target/x86_64/abi/callabi/pr38891.c
 
6232
===================================================================
 
6233
--- a/src/gcc/testsuite/gcc.target/x86_64/abi/callabi/pr38891.c (.../tags/gcc_4_8_2_release)
 
6234
+++ b/src/gcc/testsuite/gcc.target/x86_64/abi/callabi/pr38891.c (.../branches/gcc-4_8-branch)
 
6235
@@ -1,7 +1,7 @@
 
6236
 /* Test for cross x86_64<->w64 abi standard calls.
 
6237
 */
 
6238
 /* { dg-do compile } */
 
6239
-/* { dg-options "-mno-sse" } */
 
6240
+/* { dg-options "-mno-sse -maccumulate-outgoing-args" } */
 
6241
 #include "callabi.h"
 
6242
 
 
6243
 long double
 
6244
Index: gcc/testsuite/gcc.target/x86_64/abi/callabi/vaarg-1.c
 
6245
===================================================================
 
6246
--- a/src/gcc/testsuite/gcc.target/x86_64/abi/callabi/vaarg-1.c (.../tags/gcc_4_8_2_release)
 
6247
+++ b/src/gcc/testsuite/gcc.target/x86_64/abi/callabi/vaarg-1.c (.../branches/gcc-4_8-branch)
 
6248
@@ -2,7 +2,7 @@
 
6249
 */
 
6250
 /* Origin: Kai Tietz <kai.tietz@onevision.com> */
 
6251
 /* { dg-do run } */
 
6252
-/* { dg-options "-std=gnu99" } */
 
6253
+/* { dg-options "-std=gnu99 -maccumulate-outgoing-args" } */
 
6254
 #include "callabi.h"
 
6255
 
 
6256
 extern __SIZE_TYPE__ strlen (const char *);
 
6257
Index: gcc/testsuite/gcc.target/x86_64/abi/callabi/vaarg-2.c
 
6258
===================================================================
 
6259
--- a/src/gcc/testsuite/gcc.target/x86_64/abi/callabi/vaarg-2.c (.../tags/gcc_4_8_2_release)
 
6260
+++ b/src/gcc/testsuite/gcc.target/x86_64/abi/callabi/vaarg-2.c (.../branches/gcc-4_8-branch)
 
6261
@@ -2,7 +2,7 @@
 
6262
 */
 
6263
 /* Origin: Kai Tietz <kai.tietz@onevision.com> */
 
6264
 /* { dg-do run } */
 
6265
-/* { dg-options "-std=gnu99" } */
 
6266
+/* { dg-options "-std=gnu99 -maccumulate-outgoing-args" } */
 
6267
 #include "callabi.h"
 
6268
 
 
6269
 extern void abort (void);
 
6270
Index: gcc/testsuite/gcc.target/x86_64/abi/callabi/vaarg-3.c
 
6271
===================================================================
 
6272
--- a/src/gcc/testsuite/gcc.target/x86_64/abi/callabi/vaarg-3.c (.../tags/gcc_4_8_2_release)
 
6273
+++ b/src/gcc/testsuite/gcc.target/x86_64/abi/callabi/vaarg-3.c (.../branches/gcc-4_8-branch)
 
6274
@@ -2,7 +2,7 @@
 
6275
 */
 
6276
 /* Origin: Kai Tietz <kai.tietz@onevision.com> */
 
6277
 /* { dg-do run } */
 
6278
-/* { dg-options "-std=gnu99" } */
 
6279
+/* { dg-options "-std=gnu99 -maccumulate-outgoing-args" } */
 
6280
 #include "callabi.h"
 
6281
 
 
6282
 extern void abort (void);
 
6283
Index: gcc/testsuite/gcc.target/x86_64/abi/callabi/vaarg-4a.c
 
6284
===================================================================
 
6285
--- a/src/gcc/testsuite/gcc.target/x86_64/abi/callabi/vaarg-4a.c        (.../tags/gcc_4_8_2_release)
 
6286
+++ b/src/gcc/testsuite/gcc.target/x86_64/abi/callabi/vaarg-4a.c        (.../branches/gcc-4_8-branch)
 
6287
@@ -1,6 +1,6 @@
 
6288
 /* Test for cross x86_64<->w64 abi va_list calls.  */
 
6289
 /* { dg-do run { target i?86-*-linux* x86_64-*-linux* } } */
 
6290
-/* { dg-options "-O2 -mabi=ms -std=gnu99 -fno-builtin" } */
 
6291
+/* { dg-options "-O2 -mabi=ms -std=gnu99 -fno-builtin -maccumulate-outgoing-args" } */
 
6292
 /* { dg-additional-sources "vaarg-4b.c" } */
 
6293
 
 
6294
 extern __SIZE_TYPE__ __attribute__ ((sysv_abi)) strlen (const char *);
 
6295
Index: gcc/testsuite/gcc.target/x86_64/abi/callabi/vaarg-5a.c
 
6296
===================================================================
 
6297
--- a/src/gcc/testsuite/gcc.target/x86_64/abi/callabi/vaarg-5a.c        (.../tags/gcc_4_8_2_release)
 
6298
+++ b/src/gcc/testsuite/gcc.target/x86_64/abi/callabi/vaarg-5a.c        (.../branches/gcc-4_8-branch)
 
6299
@@ -1,6 +1,6 @@
 
6300
 /* Test for cross x86_64<->w64 abi va_list calls.  */
 
6301
 /* { dg-do run { target i?86-*-linux* x86_64-*-linux* } } */
 
6302
-/* { dg-options "-O2 -mabi=ms -std=gnu99 -fno-builtin" } */
 
6303
+/* { dg-options "-O2 -mabi=ms -std=gnu99 -fno-builtin -maccumulate-outgoing-args" } */
 
6304
 /* { dg-additional-sources "vaarg-5b.c" } */
 
6305
 
 
6306
 extern void __attribute__ ((sysv_abi)) abort (void);
 
6307
Index: gcc/testsuite/gcc.target/x86_64/abi/callabi/vaarg-4b.c
 
6308
===================================================================
 
6309
--- a/src/gcc/testsuite/gcc.target/x86_64/abi/callabi/vaarg-4b.c        (.../tags/gcc_4_8_2_release)
 
6310
+++ b/src/gcc/testsuite/gcc.target/x86_64/abi/callabi/vaarg-4b.c        (.../branches/gcc-4_8-branch)
 
6311
@@ -1,5 +1,5 @@
 
6312
 /* Test for cross x86_64<->w64 abi va_list calls.  */
 
6313
-/* { dg-options "-O2 -mabi=ms -std=gnu99 -fno-builtin" } */
 
6314
+/* { dg-options "-O2 -mabi=ms -std=gnu99 -fno-builtin -maccumulate-outgoing-args" } */
 
6315
 
 
6316
 #include <stdarg.h>
 
6317
 
 
6318
Index: gcc/testsuite/gcc.target/x86_64/abi/callabi/vaarg-5b.c
 
6319
===================================================================
 
6320
--- a/src/gcc/testsuite/gcc.target/x86_64/abi/callabi/vaarg-5b.c        (.../tags/gcc_4_8_2_release)
 
6321
+++ b/src/gcc/testsuite/gcc.target/x86_64/abi/callabi/vaarg-5b.c        (.../branches/gcc-4_8-branch)
 
6322
@@ -1,5 +1,5 @@
 
6323
 /* Test for cross x86_64<->w64 abi va_list calls.  */
 
6324
-/* { dg-options "-O2 -mabi=ms -std=gnu99 -fno-builtin" } */
 
6325
+/* { dg-options "-O2 -mabi=ms -std=gnu99 -fno-builtin -maccumulate-outgoing-args" } */
 
6326
 
 
6327
 #include <stdarg.h>
 
6328
 
 
6329
Index: gcc/testsuite/gcc.target/x86_64/abi/callabi/leaf-1.c
 
6330
===================================================================
 
6331
--- a/src/gcc/testsuite/gcc.target/x86_64/abi/callabi/leaf-1.c  (.../tags/gcc_4_8_2_release)
 
6332
+++ b/src/gcc/testsuite/gcc.target/x86_64/abi/callabi/leaf-1.c  (.../branches/gcc-4_8-branch)
 
6333
@@ -1,5 +1,5 @@
 
6334
 /* { dg-do compile } */
 
6335
-/* { dg-options "-O2 -mabi=sysv" } */
 
6336
+/* { dg-options "-O2 -mabi=sysv -maccumulate-outgoing-args" } */
 
6337
 
 
6338
 __attribute__ ((ms_abi))
 
6339
 int foo (void)
 
6340
Index: gcc/testsuite/gcc.target/x86_64/abi/callabi/leaf-2.c
 
6341
===================================================================
 
6342
--- a/src/gcc/testsuite/gcc.target/x86_64/abi/callabi/leaf-2.c  (.../tags/gcc_4_8_2_release)
 
6343
+++ b/src/gcc/testsuite/gcc.target/x86_64/abi/callabi/leaf-2.c  (.../branches/gcc-4_8-branch)
 
6344
@@ -1,5 +1,5 @@
 
6345
 /* { dg-do compile } */
 
6346
-/* { dg-options "-O2 -mabi=sysv" } */
 
6347
+/* { dg-options "-O2 -mabi=sysv -maccumulate-outgoing-args" } */
 
6348
 
 
6349
 extern int glb1, gbl2, gbl3;
 
6350
 
 
6351
Index: gcc/testsuite/gcc.target/x86_64/abi/callabi/func-1.c
 
6352
===================================================================
 
6353
--- a/src/gcc/testsuite/gcc.target/x86_64/abi/callabi/func-1.c  (.../tags/gcc_4_8_2_release)
 
6354
+++ b/src/gcc/testsuite/gcc.target/x86_64/abi/callabi/func-1.c  (.../branches/gcc-4_8-branch)
 
6355
@@ -2,7 +2,7 @@
 
6356
 */
 
6357
 /* Origin: Kai Tietz <kai.tietz@onevision.com> */
 
6358
 /* { dg-do run } */
 
6359
-/* { dg-options "-std=gnu99 -ffast-math" } */
 
6360
+/* { dg-options "-std=gnu99 -ffast-math -maccumulate-outgoing-args" } */
 
6361
 #include "callabi.h"
 
6362
 
 
6363
 extern void abort (void);
 
6364
Index: gcc/testsuite/gcc.target/x86_64/abi/callabi/func-indirect-2a.c
 
6365
===================================================================
 
6366
--- a/src/gcc/testsuite/gcc.target/x86_64/abi/callabi/func-indirect-2a.c        (.../tags/gcc_4_8_2_release)
 
6367
+++ b/src/gcc/testsuite/gcc.target/x86_64/abi/callabi/func-indirect-2a.c        (.../branches/gcc-4_8-branch)
 
6368
@@ -1,6 +1,6 @@
 
6369
 /* Test for cross x86_64<->w64 abi standard calls via variable.  */
 
6370
 /* { dg-do run { target i?86-*-linux* x86_64-*-linux* } } */
 
6371
-/* { dg-options "-O2 -mabi=ms -std=gnu99 -ffast-math -fno-builtin" } */
 
6372
+/* { dg-options "-O2 -mabi=ms -std=gnu99 -ffast-math -fno-builtin -maccumulate-outgoing-args" } */
 
6373
 /* { dg-additional-sources "func-indirect-2b.c" } */
 
6374
 
 
6375
 extern void __attribute__ ((sysv_abi)) abort (void);
 
6376
Index: gcc/testsuite/gcc.target/x86_64/abi/callabi/func-indirect.c
 
6377
===================================================================
 
6378
--- a/src/gcc/testsuite/gcc.target/x86_64/abi/callabi/func-indirect.c   (.../tags/gcc_4_8_2_release)
 
6379
+++ b/src/gcc/testsuite/gcc.target/x86_64/abi/callabi/func-indirect.c   (.../branches/gcc-4_8-branch)
 
6380
@@ -2,7 +2,7 @@
 
6381
 */
 
6382
 /* Origin: Kai Tietz <kai.tietz@onevision.com> */
 
6383
 /* { dg-do run } */
 
6384
-/* { dg-options "-std=gnu99 -ffast-math" } */
 
6385
+/* { dg-options "-std=gnu99 -ffast-math -maccumulate-outgoing-args" } */
 
6386
 #include "callabi.h"
 
6387
 
 
6388
 extern void abort (void);
 
6389
Index: gcc/testsuite/gcc.target/x86_64/abi/callabi/func-2a.c
 
6390
===================================================================
 
6391
--- a/src/gcc/testsuite/gcc.target/x86_64/abi/callabi/func-2a.c (.../tags/gcc_4_8_2_release)
 
6392
+++ b/src/gcc/testsuite/gcc.target/x86_64/abi/callabi/func-2a.c (.../branches/gcc-4_8-branch)
 
6393
@@ -1,6 +1,6 @@
 
6394
 /* Test for cross x86_64<->w64 abi standard calls.  */
 
6395
 /* { dg-do run { target i?86-*-linux* x86_64-*-linux* } } */
 
6396
-/* { dg-options "-O2 -mabi=ms -std=gnu99 -ffast-math -fno-builtin" } */
 
6397
+/* { dg-options "-O2 -mabi=ms -std=gnu99 -ffast-math -fno-builtin -maccumulate-outgoing-args" } */
 
6398
 /* { dg-additional-sources "func-2b.c" } */
 
6399
 
 
6400
 extern void __attribute__ ((sysv_abi)) abort (void);
 
6401
Index: gcc/testsuite/gcc.target/x86_64/abi/callabi/func-indirect-2b.c
 
6402
===================================================================
 
6403
--- a/src/gcc/testsuite/gcc.target/x86_64/abi/callabi/func-indirect-2b.c        (.../tags/gcc_4_8_2_release)
 
6404
+++ b/src/gcc/testsuite/gcc.target/x86_64/abi/callabi/func-indirect-2b.c        (.../branches/gcc-4_8-branch)
 
6405
@@ -1,5 +1,5 @@
 
6406
 /* Test for cross x86_64<->w64 abi standard calls via variable.  */
 
6407
-/* { dg-options "-O2 -mabi=ms -std=gnu99 -ffast-math -fno-builtin" } */
 
6408
+/* { dg-options "-O2 -mabi=ms -std=gnu99 -ffast-math -fno-builtin -maccumulate-outgoing-args" } */
 
6409
 
 
6410
 typedef int (*func)(void *, char *, char *, short, long long);
 
6411
 
 
6412
Index: gcc/testsuite/gcc.target/x86_64/abi/callabi/func-2b.c
 
6413
===================================================================
 
6414
--- a/src/gcc/testsuite/gcc.target/x86_64/abi/callabi/func-2b.c (.../tags/gcc_4_8_2_release)
 
6415
+++ b/src/gcc/testsuite/gcc.target/x86_64/abi/callabi/func-2b.c (.../branches/gcc-4_8-branch)
 
6416
@@ -1,5 +1,5 @@
 
6417
 /* Test for cross x86_64<->w64 abi standard calls.  */
 
6418
-/* { dg-options "-mabi=ms -std=gnu99 -ffast-math -fno-builtin" } */
 
6419
+/* { dg-options "-mabi=ms -std=gnu99 -ffast-math -fno-builtin -maccumulate-outgoing-args" } */
 
6420
 
 
6421
 long double func_cross (long double a, double b, float c, long d, int e,
 
6422
                        char f)
5781
6423
Index: gcc/testsuite/gcc.target/s390/htm-xl-intrin-1.c
5782
6424
===================================================================
5783
6425
--- a/src/gcc/testsuite/gcc.target/s390/htm-xl-intrin-1.c       (.../tags/gcc_4_8_2_release)
5898
6540
-/* Make sure the tdb NULL argument ends up as immediate value in the
5899
6541
-   instruction.  */
5900
6542
-/* { dg-final { scan-assembler-times "tbegin\t0," 10 } } */
 
6543
Index: gcc/testsuite/gcc.target/s390/hotpatch-compile-1.c
 
6544
===================================================================
 
6545
--- a/src/gcc/testsuite/gcc.target/s390/hotpatch-compile-1.c    (.../tags/gcc_4_8_2_release)
 
6546
+++ b/src/gcc/testsuite/gcc.target/s390/hotpatch-compile-1.c    (.../branches/gcc-4_8-branch)
 
6547
@@ -0,0 +1,27 @@
 
6548
+/* Functional tests for the function hotpatching feature.  */
 
6549
+
 
6550
+/* { dg-do run } */
 
6551
+/* { dg-options "-O3 -mzarch -mhotpatch" } */
 
6552
+
 
6553
+#include <stdio.h>
 
6554
+
 
6555
+void hp1(void)
 
6556
+{
 
6557
+  printf("hello, world!\n");
 
6558
+}
 
6559
+
 
6560
+inline void hp2(void)
 
6561
+{
 
6562
+  printf("hello, world!\n");
 
6563
+}
 
6564
+
 
6565
+__attribute__ ((always_inline))
 
6566
+void hp3(void) /* { dg-warning "always_inline function might not be inlinable" } */
 
6567
+{
 
6568
+  printf("hello, world!\n");
 
6569
+} /* { dg-warning "function 'hp3' with the 'always_inline' attribute is not hotpatchable" } */
 
6570
+
 
6571
+int main (void)
 
6572
+{
 
6573
+  return 0;
 
6574
+}
 
6575
Index: gcc/testsuite/gcc.target/s390/hotpatch-compile-2.c
 
6576
===================================================================
 
6577
--- a/src/gcc/testsuite/gcc.target/s390/hotpatch-compile-2.c    (.../tags/gcc_4_8_2_release)
 
6578
+++ b/src/gcc/testsuite/gcc.target/s390/hotpatch-compile-2.c    (.../branches/gcc-4_8-branch)
 
6579
@@ -0,0 +1,27 @@
 
6580
+/* Functional tests for the function hotpatching feature.  */
 
6581
+
 
6582
+/* { dg-do run } */
 
6583
+/* { dg-options "-O3 -mzarch -mhotpatch=0" } */
 
6584
+
 
6585
+#include <stdio.h>
 
6586
+
 
6587
+void hp1(void)
 
6588
+{
 
6589
+  printf("hello, world!\n");
 
6590
+}
 
6591
+
 
6592
+inline void hp2(void)
 
6593
+{
 
6594
+  printf("hello, world!\n");
 
6595
+}
 
6596
+
 
6597
+__attribute__ ((always_inline))
 
6598
+void hp3(void) /* { dg-warning "always_inline function might not be inlinable" } */
 
6599
+{
 
6600
+  printf("hello, world!\n");
 
6601
+} /* { dg-warning "function 'hp3' with the 'always_inline' attribute is not hotpatchable" } */
 
6602
+
 
6603
+int main (void)
 
6604
+{
 
6605
+  return 0;
 
6606
+}
 
6607
Index: gcc/testsuite/gcc.target/s390/hotpatch-compile-3.c
 
6608
===================================================================
 
6609
--- a/src/gcc/testsuite/gcc.target/s390/hotpatch-compile-3.c    (.../tags/gcc_4_8_2_release)
 
6610
+++ b/src/gcc/testsuite/gcc.target/s390/hotpatch-compile-3.c    (.../branches/gcc-4_8-branch)
 
6611
@@ -0,0 +1,27 @@
 
6612
+/* Functional tests for the function hotpatching feature.  */
 
6613
+
 
6614
+/* { dg-do run } */
 
6615
+/* { dg-options "-O3 -mzarch -mhotpatch=1" } */
 
6616
+
 
6617
+#include <stdio.h>
 
6618
+
 
6619
+void hp1(void)
 
6620
+{
 
6621
+  printf("hello, world!\n");
 
6622
+}
 
6623
+
 
6624
+inline void hp2(void)
 
6625
+{
 
6626
+  printf("hello, world!\n");
 
6627
+}
 
6628
+
 
6629
+__attribute__ ((always_inline))
 
6630
+void hp3(void) /* { dg-warning "always_inline function might not be inlinable" } */
 
6631
+{
 
6632
+  printf("hello, world!\n");
 
6633
+} /* { dg-warning "function 'hp3' with the 'always_inline' attribute is not hotpatchable" } */
 
6634
+
 
6635
+int main (void)
 
6636
+{
 
6637
+  return 0;
 
6638
+}
 
6639
Index: gcc/testsuite/gcc.target/s390/hotpatch-compile-4.c
 
6640
===================================================================
 
6641
--- a/src/gcc/testsuite/gcc.target/s390/hotpatch-compile-4.c    (.../tags/gcc_4_8_2_release)
 
6642
+++ b/src/gcc/testsuite/gcc.target/s390/hotpatch-compile-4.c    (.../branches/gcc-4_8-branch)
 
6643
@@ -0,0 +1,11 @@
 
6644
+/* Functional tests for the function hotpatching feature.  */
 
6645
+
 
6646
+/* { dg-do compile } */
 
6647
+/* { dg-options "-O3 -mzarch -mhotpatch=-1" } */
 
6648
+
 
6649
+int main (void)
 
6650
+{
 
6651
+  return 0;
 
6652
+}
 
6653
+
 
6654
+/* { dg-excess-errors "argument to '-mhotpatch=' should be a non-negative integer" } */
 
6655
Index: gcc/testsuite/gcc.target/s390/hotpatch-compile-5.c
 
6656
===================================================================
 
6657
--- a/src/gcc/testsuite/gcc.target/s390/hotpatch-compile-5.c    (.../tags/gcc_4_8_2_release)
 
6658
+++ b/src/gcc/testsuite/gcc.target/s390/hotpatch-compile-5.c    (.../branches/gcc-4_8-branch)
 
6659
@@ -0,0 +1,28 @@
 
6660
+/* Functional tests for the function hotpatching feature.  */
 
6661
+
 
6662
+/* { dg-do compile } */
 
6663
+/* { dg-options "-O3 -mzarch -mhotpatch=1000000" } */
 
6664
+
 
6665
+#include <stdio.h>
 
6666
+
 
6667
+void hp1(void)
 
6668
+{
 
6669
+  printf("hello, world!\n");
 
6670
+}
 
6671
+
 
6672
+__attribute__ ((hotpatch(1000000)))
 
6673
+void hp2(void)
 
6674
+{
 
6675
+  printf("hello, world!\n");
 
6676
+}
 
6677
+
 
6678
+__attribute__ ((hotpatch(1000001)))
 
6679
+void hp3(void)
 
6680
+{ /* { dg-error "requested 'hotpatch' attribute is not a non-negative integer constant or too large .max. 1000000." } */
 
6681
+  printf("hello, world!\n");
 
6682
+}
 
6683
+
 
6684
+int main (void)
 
6685
+{
 
6686
+  return 0;
 
6687
+}
 
6688
Index: gcc/testsuite/gcc.target/s390/hotpatch-compile-6.c
 
6689
===================================================================
 
6690
--- a/src/gcc/testsuite/gcc.target/s390/hotpatch-compile-6.c    (.../tags/gcc_4_8_2_release)
 
6691
+++ b/src/gcc/testsuite/gcc.target/s390/hotpatch-compile-6.c    (.../branches/gcc-4_8-branch)
 
6692
@@ -0,0 +1,11 @@
 
6693
+/* Functional tests for the function hotpatching feature.  */
 
6694
+
 
6695
+/* { dg-do compile } */
 
6696
+/* { dg-options "-O3 -mzarch -mhotpatch=1000001" } */
 
6697
+
 
6698
+int main (void)
 
6699
+{
 
6700
+  return 0;
 
6701
+}
 
6702
+
 
6703
+/* { dg-excess-errors "argument to '-mhotpatch=' is too large .max. 1000000." } */
5901
6704
Index: gcc/testsuite/gcc.target/s390/htm-builtins-compile-1.c
5902
6705
===================================================================
5903
6706
--- a/src/gcc/testsuite/gcc.target/s390/htm-builtins-compile-1.c        (.../tags/gcc_4_8_2_release)
6068
6871
+/* { dg-final { scan-assembler-times "tbeginc\t" 1 } } */
6069
6872
+/* { dg-final { scan-assembler-times "tabort\t" 8 } } */
6070
6873
+/* { dg-final { scan-assembler "ppa\t" } } */
 
6874
Index: gcc/testsuite/gcc.target/s390/hotpatch-compile-7.c
 
6875
===================================================================
 
6876
--- a/src/gcc/testsuite/gcc.target/s390/hotpatch-compile-7.c    (.../tags/gcc_4_8_2_release)
 
6877
+++ b/src/gcc/testsuite/gcc.target/s390/hotpatch-compile-7.c    (.../branches/gcc-4_8-branch)
 
6878
@@ -0,0 +1,68 @@
 
6879
+/* Functional tests for the function hotpatching feature.  */
 
6880
+
 
6881
+/* { dg-do run } */
 
6882
+/* { dg-options "-O3 -mzarch -mno-hotpatch" } */
 
6883
+
 
6884
+#include <stdio.h>
 
6885
+
 
6886
+__attribute__ ((hotpatch))
 
6887
+void hp1(void)
 
6888
+{
 
6889
+  printf("hello, world!\n");
 
6890
+}
 
6891
+
 
6892
+__attribute__ ((hotpatch))
 
6893
+inline void hp2(void)
 
6894
+{
 
6895
+  printf("hello, world!\n");
 
6896
+}
 
6897
+
 
6898
+__attribute__ ((hotpatch))
 
6899
+__attribute__ ((always_inline))
 
6900
+void hp3(void) /* { dg-warning "always_inline function might not be inlinable" } */
 
6901
+{
 
6902
+  printf("hello, world!\n");
 
6903
+} /* { dg-warning "function 'hp3' with the 'always_inline' attribute is not hotpatchable" } */
 
6904
+
 
6905
+__attribute__ ((hotpatch(0)))
 
6906
+void hp4(void)
 
6907
+{
 
6908
+  printf("hello, world!\n");
 
6909
+}
 
6910
+
 
6911
+__attribute__ ((hotpatch(0)))
 
6912
+inline void hp5(void)
 
6913
+{
 
6914
+  printf("hello, world!\n");
 
6915
+}
 
6916
+
 
6917
+__attribute__ ((hotpatch(0)))
 
6918
+__attribute__ ((always_inline))
 
6919
+void hp6(void) /* { dg-warning "always_inline function might not be inlinable" } */
 
6920
+{
 
6921
+  printf("hello, world!\n");
 
6922
+} /* { dg-warning "function 'hp6' with the 'always_inline' attribute is not hotpatchable" } */
 
6923
+
 
6924
+__attribute__ ((hotpatch(1)))
 
6925
+void hp7(void)
 
6926
+{
 
6927
+  printf("hello, world!\n");
 
6928
+}
 
6929
+
 
6930
+__attribute__ ((hotpatch(1)))
 
6931
+inline void hp8(void)
 
6932
+{
 
6933
+  printf("hello, world!\n");
 
6934
+}
 
6935
+
 
6936
+__attribute__ ((hotpatch(1)))
 
6937
+__attribute__ ((always_inline))
 
6938
+void hp9(void) /* { dg-warning "always_inline function might not be inlinable" } */
 
6939
+{
 
6940
+  printf("hello, world!\n");
 
6941
+} /* { dg-warning "function 'hp9' with the 'always_inline' attribute is not hotpatchable" } */
 
6942
+
 
6943
+int main (void)
 
6944
+{
 
6945
+  return 0;
 
6946
+}
6071
6947
Index: gcc/testsuite/gcc.target/s390/htm-builtins-compile-2.c
6072
6948
===================================================================
6073
6949
--- a/src/gcc/testsuite/gcc.target/s390/htm-builtins-compile-2.c        (.../tags/gcc_4_8_2_release)
6152
7028
 # If a testcase doesn't have special options, use these.
6153
7029
 global DEFAULT_CFLAGS
6154
7030
 if ![info exists DEFAULT_CFLAGS] then {
 
7031
Index: gcc/testsuite/gcc.target/s390/hotpatch-1.c
 
7032
===================================================================
 
7033
--- a/src/gcc/testsuite/gcc.target/s390/hotpatch-1.c    (.../tags/gcc_4_8_2_release)
 
7034
+++ b/src/gcc/testsuite/gcc.target/s390/hotpatch-1.c    (.../branches/gcc-4_8-branch)
 
7035
@@ -0,0 +1,20 @@
 
7036
+/* Functional tests for the function hotpatching feature.  */
 
7037
+
 
7038
+/* { dg-do run } */
 
7039
+/* { dg-options "-O3 -mzarch -mhotpatch --save-temps" } */
 
7040
+
 
7041
+#include <stdio.h>
 
7042
+
 
7043
+void hp1(void)
 
7044
+{
 
7045
+  printf("hello, world!\n");
 
7046
+}
 
7047
+
 
7048
+int main (void)
 
7049
+{
 
7050
+  return 0;
 
7051
+}
 
7052
+
 
7053
+/* Check number of occurences of certain instructions.  */
 
7054
+/* { dg-final { scan-assembler-times "nopr\t%r7" 12 } } */
 
7055
+/* { dg-final { scan-assembler-times "nop\t0" 1 } } */
 
7056
Index: gcc/testsuite/gcc.target/s390/hotpatch-2.c
 
7057
===================================================================
 
7058
--- a/src/gcc/testsuite/gcc.target/s390/hotpatch-2.c    (.../tags/gcc_4_8_2_release)
 
7059
+++ b/src/gcc/testsuite/gcc.target/s390/hotpatch-2.c    (.../branches/gcc-4_8-branch)
 
7060
@@ -0,0 +1,20 @@
 
7061
+/* Functional tests for the function hotpatching feature.  */
 
7062
+
 
7063
+/* { dg-do run } */
 
7064
+/* { dg-options "-O3 -mzarch -mhotpatch=1 --save-temps" } */
 
7065
+
 
7066
+#include <stdio.h>
 
7067
+
 
7068
+void hp1(void)
 
7069
+{
 
7070
+  printf("hello, world!\n");
 
7071
+}
 
7072
+
 
7073
+int main (void)
 
7074
+{
 
7075
+  return 0;
 
7076
+}
 
7077
+
 
7078
+/* Check number of occurences of certain instructions.  */
 
7079
+/* { dg-final { scan-assembler-times "nopr\t%r7" 1 } } */
 
7080
+/* { dg-final { scan-assembler-times "nop\t0" 1 } } */
 
7081
Index: gcc/testsuite/gcc.target/s390/hotpatch-3.c
 
7082
===================================================================
 
7083
--- a/src/gcc/testsuite/gcc.target/s390/hotpatch-3.c    (.../tags/gcc_4_8_2_release)
 
7084
+++ b/src/gcc/testsuite/gcc.target/s390/hotpatch-3.c    (.../branches/gcc-4_8-branch)
 
7085
@@ -0,0 +1,20 @@
 
7086
+/* Functional tests for the function hotpatching feature.  */
 
7087
+
 
7088
+/* { dg-do run } */
 
7089
+/* { dg-options "-O3 -mzarch -mhotpatch=0 --save-temps" } */
 
7090
+
 
7091
+#include <stdio.h>
 
7092
+
 
7093
+void hp1(void)
 
7094
+{
 
7095
+  printf("hello, world!\n");
 
7096
+}
 
7097
+
 
7098
+int main (void)
 
7099
+{
 
7100
+  return 0;
 
7101
+}
 
7102
+
 
7103
+/* Check number of occurences of certain instructions.  */
 
7104
+/* { dg-final { scan-assembler-not "nopr\t%r7" } } */
 
7105
+/* { dg-final { scan-assembler-times "nop\t0" 1 } } */
 
7106
Index: gcc/testsuite/gcc.target/s390/hotpatch-4.c
 
7107
===================================================================
 
7108
--- a/src/gcc/testsuite/gcc.target/s390/hotpatch-4.c    (.../tags/gcc_4_8_2_release)
 
7109
+++ b/src/gcc/testsuite/gcc.target/s390/hotpatch-4.c    (.../branches/gcc-4_8-branch)
 
7110
@@ -0,0 +1,26 @@
 
7111
+/* Functional tests for the function hotpatching feature.  */
 
7112
+
 
7113
+/* { dg-do run } */
 
7114
+/* { dg-options "-O3 -mzarch -mhotpatch --save-temps" } */
 
7115
+
 
7116
+#include <stdio.h>
 
7117
+
 
7118
+inline void hp1(void)
 
7119
+{
 
7120
+  printf("hello, world!\n");
 
7121
+}
 
7122
+
 
7123
+__attribute__ ((always_inline))
 
7124
+void hp2(void) /* { dg-warning "always_inline function might not be inlinable" } */
 
7125
+{
 
7126
+  printf("hello, world!\n");
 
7127
+} /* { dg-warning "function 'hp2' with the 'always_inline' attribute is not hotpatchable" } */
 
7128
+
 
7129
+int main (void)
 
7130
+{
 
7131
+  return 0;
 
7132
+}
 
7133
+
 
7134
+/* Check number of occurences of certain instructions.  */
 
7135
+/* { dg-final { scan-assembler-not "nopr\t%r7" } } */
 
7136
+/* { dg-final { scan-assembler-not "nop\t0" } } */
 
7137
Index: gcc/testsuite/gcc.target/s390/hotpatch-5.c
 
7138
===================================================================
 
7139
--- a/src/gcc/testsuite/gcc.target/s390/hotpatch-5.c    (.../tags/gcc_4_8_2_release)
 
7140
+++ b/src/gcc/testsuite/gcc.target/s390/hotpatch-5.c    (.../branches/gcc-4_8-branch)
 
7141
@@ -0,0 +1,21 @@
 
7142
+/* Functional tests for the function hotpatching feature.  */
 
7143
+
 
7144
+/* { dg-do run } */
 
7145
+/* { dg-options "-O3 -mzarch -mhotpatch --save-temps" } */
 
7146
+
 
7147
+#include <stdio.h>
 
7148
+
 
7149
+__attribute__ ((hotpatch))
 
7150
+void hp1(void)
 
7151
+{
 
7152
+  printf("hello, world!\n");
 
7153
+}
 
7154
+
 
7155
+int main (void)
 
7156
+{
 
7157
+  return 0;
 
7158
+}
 
7159
+
 
7160
+/* Check number of occurences of certain instructions.  */
 
7161
+/* { dg-final { scan-assembler-times "nopr\t%r7" 12 } } */
 
7162
+/* { dg-final { scan-assembler-times "nop\t0" 1 } } */
 
7163
Index: gcc/testsuite/gcc.target/s390/hotpatch-6.c
 
7164
===================================================================
 
7165
--- a/src/gcc/testsuite/gcc.target/s390/hotpatch-6.c    (.../tags/gcc_4_8_2_release)
 
7166
+++ b/src/gcc/testsuite/gcc.target/s390/hotpatch-6.c    (.../branches/gcc-4_8-branch)
 
7167
@@ -0,0 +1,21 @@
 
7168
+/* Functional tests for the function hotpatching feature.  */
 
7169
+
 
7170
+/* { dg-do run } */
 
7171
+/* { dg-options "-O3 -mzarch -mhotpatch --save-temps" } */
 
7172
+
 
7173
+#include <stdio.h>
 
7174
+
 
7175
+__attribute__ ((hotpatch(1)))
 
7176
+void hp1(void)
 
7177
+{
 
7178
+  printf("hello, world!\n");
 
7179
+}
 
7180
+
 
7181
+int main (void)
 
7182
+{
 
7183
+  return 0;
 
7184
+}
 
7185
+
 
7186
+/* Check number of occurences of certain instructions.  */
 
7187
+/* { dg-final { scan-assembler-times "nopr\t%r7" 1 } } */
 
7188
+/* { dg-final { scan-assembler-times "nop\t0" 1 } } */
6155
7189
Index: gcc/testsuite/gcc.target/s390/htm-builtins-1.c
6156
7190
===================================================================
6157
7191
--- a/src/gcc/testsuite/gcc.target/s390/htm-builtins-1.c        (.../tags/gcc_4_8_2_release)
7230
8264
+    return rc;
7231
8265
+  }
7232
8266
+}
 
8267
Index: gcc/testsuite/gcc.target/s390/hotpatch-7.c
 
8268
===================================================================
 
8269
--- a/src/gcc/testsuite/gcc.target/s390/hotpatch-7.c    (.../tags/gcc_4_8_2_release)
 
8270
+++ b/src/gcc/testsuite/gcc.target/s390/hotpatch-7.c    (.../branches/gcc-4_8-branch)
 
8271
@@ -0,0 +1,21 @@
 
8272
+/* Functional tests for the function hotpatching feature.  */
 
8273
+
 
8274
+/* { dg-do run } */
 
8275
+/* { dg-options "-O3 -mzarch -mhotpatch --save-temps" } */
 
8276
+
 
8277
+#include <stdio.h>
 
8278
+
 
8279
+__attribute__ ((hotpatch(0)))
 
8280
+void hp1(void)
 
8281
+{
 
8282
+  printf("hello, world!\n");
 
8283
+}
 
8284
+
 
8285
+int main (void)
 
8286
+{
 
8287
+  return 0;
 
8288
+}
 
8289
+
 
8290
+/* Check number of occurences of certain instructions.  */
 
8291
+/* { dg-final { scan-assembler-not "nopr\t%r7" } } */
 
8292
+/* { dg-final { scan-assembler-times "nop\t0" 1 } } */
7233
8293
Index: gcc/testsuite/gcc.target/s390/htm-builtins-2.c
7234
8294
===================================================================
7235
8295
--- a/src/gcc/testsuite/gcc.target/s390/htm-builtins-2.c        (.../tags/gcc_4_8_2_release)
7917
8977
+    return rc;
7918
8978
+  }
7919
8979
+}
 
8980
Index: gcc/testsuite/gcc.target/s390/hotpatch-8.c
 
8981
===================================================================
 
8982
--- a/src/gcc/testsuite/gcc.target/s390/hotpatch-8.c    (.../tags/gcc_4_8_2_release)
 
8983
+++ b/src/gcc/testsuite/gcc.target/s390/hotpatch-8.c    (.../branches/gcc-4_8-branch)
 
8984
@@ -0,0 +1,28 @@
 
8985
+/* Functional tests for the function hotpatching feature.  */
 
8986
+
 
8987
+/* { dg-do run } */
 
8988
+/* { dg-options "-O3 -mzarch -mhotpatch --save-temps" } */
 
8989
+
 
8990
+#include <stdio.h>
 
8991
+
 
8992
+__attribute__ ((hotpatch))
 
8993
+inline void hp1(void)
 
8994
+{
 
8995
+  printf("hello, world!\n");
 
8996
+}
 
8997
+
 
8998
+__attribute__ ((hotpatch))
 
8999
+__attribute__ ((always_inline))
 
9000
+void hp2(void) /* { dg-warning "always_inline function might not be inlinable" } */
 
9001
+{
 
9002
+  printf("hello, world!\n");
 
9003
+} /* { dg-warning "function 'hp2' with the 'always_inline' attribute is not hotpatchable" } */
 
9004
+
 
9005
+int main (void)
 
9006
+{
 
9007
+  return 0;
 
9008
+}
 
9009
+
 
9010
+/* Check number of occurences of certain instructions.  */
 
9011
+/* { dg-final { scan-assembler-not "nopr\t%r7" } } */
 
9012
+/* { dg-final { scan-assembler-not "nop\t0" } } */
 
9013
Index: gcc/testsuite/gcc.target/s390/hotpatch-9.c
 
9014
===================================================================
 
9015
--- a/src/gcc/testsuite/gcc.target/s390/hotpatch-9.c    (.../tags/gcc_4_8_2_release)
 
9016
+++ b/src/gcc/testsuite/gcc.target/s390/hotpatch-9.c    (.../branches/gcc-4_8-branch)
 
9017
@@ -0,0 +1,21 @@
 
9018
+/* Functional tests for the function hotpatching feature.  */
 
9019
+
 
9020
+/* { dg-do run } */
 
9021
+/* { dg-options "-O3 -mzarch -mhotpatch=1 --save-temps" } */
 
9022
+
 
9023
+#include <stdio.h>
 
9024
+
 
9025
+__attribute__ ((hotpatch(2)))
 
9026
+void hp1(void)
 
9027
+{
 
9028
+  printf("hello, world!\n");
 
9029
+}
 
9030
+
 
9031
+int main (void)
 
9032
+{
 
9033
+  return 0;
 
9034
+}
 
9035
+
 
9036
+/* Check number of occurences of certain instructions.  */
 
9037
+/* { dg-final { scan-assembler-times "nopr\t%r7" 2 } } */
 
9038
+/* { dg-final { scan-assembler-times "nop\t0" 1 } } */
 
9039
Index: gcc/testsuite/gcc.target/s390/hotpatch-10.c
 
9040
===================================================================
 
9041
--- a/src/gcc/testsuite/gcc.target/s390/hotpatch-10.c   (.../tags/gcc_4_8_2_release)
 
9042
+++ b/src/gcc/testsuite/gcc.target/s390/hotpatch-10.c   (.../branches/gcc-4_8-branch)
 
9043
@@ -0,0 +1,21 @@
 
9044
+/* Functional tests for the function hotpatching feature.  */
 
9045
+
 
9046
+/* { dg-do run } */
 
9047
+/* { dg-options "-O3 -mzarch -mno-hotpatch --save-temps" } */
 
9048
+
 
9049
+#include <stdio.h>
 
9050
+
 
9051
+__attribute__ ((hotpatch(2)))
 
9052
+void hp1(void)
 
9053
+{
 
9054
+  printf("hello, world!\n");
 
9055
+}
 
9056
+
 
9057
+int main (void)
 
9058
+{
 
9059
+  return 0;
 
9060
+}
 
9061
+
 
9062
+/* Check number of occurences of certain instructions.  */
 
9063
+/* { dg-final { scan-assembler-times "nopr\t%r7" 2 } } */
 
9064
+/* { dg-final { scan-assembler-times "nop\t0" 1 } } */
 
9065
Index: gcc/testsuite/gcc.target/s390/hotpatch-11.c
 
9066
===================================================================
 
9067
--- a/src/gcc/testsuite/gcc.target/s390/hotpatch-11.c   (.../tags/gcc_4_8_2_release)
 
9068
+++ b/src/gcc/testsuite/gcc.target/s390/hotpatch-11.c   (.../branches/gcc-4_8-branch)
 
9069
@@ -0,0 +1,20 @@
 
9070
+/* Functional tests for the function hotpatching feature.  */
 
9071
+
 
9072
+/* { dg-do run } */
 
9073
+/* { dg-options "-O3 -mzarch -mhotpatch -mno-hotpatch --save-temps" } */
 
9074
+
 
9075
+#include <stdio.h>
 
9076
+
 
9077
+void hp1(void)
 
9078
+{
 
9079
+  printf("hello, world!\n");
 
9080
+}
 
9081
+
 
9082
+int main (void)
 
9083
+{
 
9084
+  return 0;
 
9085
+}
 
9086
+
 
9087
+/* Check number of occurences of certain instructions.  */
 
9088
+/* { dg-final { scan-assembler-not "nopr\t%r7" } } */
 
9089
+/* { dg-final { scan-assembler-not "nop\t0" } } */
 
9090
Index: gcc/testsuite/gcc.target/s390/hotpatch-12.c
 
9091
===================================================================
 
9092
--- a/src/gcc/testsuite/gcc.target/s390/hotpatch-12.c   (.../tags/gcc_4_8_2_release)
 
9093
+++ b/src/gcc/testsuite/gcc.target/s390/hotpatch-12.c   (.../branches/gcc-4_8-branch)
 
9094
@@ -0,0 +1,20 @@
 
9095
+/* Functional tests for the function hotpatching feature.  */
 
9096
+
 
9097
+/* { dg-do run } */
 
9098
+/* { dg-options "-O3 -mzarch -mno-hotpatch -mhotpatch=1 --save-temps" } */
 
9099
+
 
9100
+#include <stdio.h>
 
9101
+
 
9102
+void hp1(void)
 
9103
+{
 
9104
+  printf("hello, world!\n");
 
9105
+}
 
9106
+
 
9107
+int main (void)
 
9108
+{
 
9109
+  return 0;
 
9110
+}
 
9111
+
 
9112
+/* Check number of occurences of certain instructions.  */
 
9113
+/* { dg-final { scan-assembler-times "nopr\t%r7" 1 } } */
 
9114
+/* { dg-final { scan-assembler-times "nop\t0" 1 } } */
7920
9115
Index: gcc/testsuite/gcc.target/sh/pr51244-19.c
7921
9116
===================================================================
7922
9117
--- a/src/gcc/testsuite/gcc.target/sh/pr51244-19.c      (.../tags/gcc_4_8_2_release)
8160
9355
+      if (any (xca%i .ne. [9,99,999])) call abort
8161
9356
+  end select
8162
9357
+end
 
9358
Index: gcc/testsuite/gfortran.dg/unlimited_polymorphic_15.f90
 
9359
===================================================================
 
9360
--- a/src/gcc/testsuite/gfortran.dg/unlimited_polymorphic_15.f90        (.../tags/gcc_4_8_2_release)
 
9361
+++ b/src/gcc/testsuite/gfortran.dg/unlimited_polymorphic_15.f90        (.../branches/gcc-4_8-branch)
 
9362
@@ -0,0 +1,17 @@
 
9363
+! { dg-do compile }
 
9364
+!
 
9365
+! PR 59493: [OOP] ICE: Segfault on Class(*) pointer association
 
9366
+!
 
9367
+! Contributed by Hossein Talebi <talebi.hossein@gmail.com>
 
9368
+
 
9369
+  implicit none
 
9370
+
 
9371
+  type ty_mytype1
 
9372
+  end type
 
9373
+
 
9374
+  class(ty_mytype1), allocatable, target:: cla1
 
9375
+  class(*), pointer :: ptr
 
9376
+
 
9377
+  ptr => cla1
 
9378
+
 
9379
+end
8163
9380
Index: gcc/testsuite/gcc.c-torture/execute/pr58984.c
8164
9381
===================================================================
8165
9382
--- a/src/gcc/testsuite/gcc.c-torture/execute/pr58984.c (.../tags/gcc_4_8_2_release)
9293
10510
===================================================================
9294
10511
--- a/src/gcc/testsuite/ChangeLog       (.../tags/gcc_4_8_2_release)
9295
10512
+++ b/src/gcc/testsuite/ChangeLog       (.../branches/gcc-4_8-branch)
9296
 
@@ -1,3 +1,422 @@
 
10513
@@ -1,3 +1,505 @@
 
10514
+2013-12-19  James Greenhalgh  <james.greenhalgh@arm.com>
 
10515
+
 
10516
+       Backport from Mainline
 
10517
+       2013-05-01  James Greenhalgh  <james.greenhalgh@arm.com>
 
10518
+
 
10519
+       * gcc.target/aarch64/scalar_intrinsics.c (force_simd): New.
 
10520
+       (test_vceqd_s64): Force arguments to SIMD registers.
 
10521
+       (test_vceqzd_s64): Likewise.
 
10522
+       (test_vcged_s64): Likewise.
 
10523
+       (test_vcled_s64): Likewise.
 
10524
+       (test_vcgezd_s64): Likewise.
 
10525
+       (test_vcged_u64): Likewise.
 
10526
+       (test_vcgtd_s64): Likewise.
 
10527
+       (test_vcltd_s64): Likewise.
 
10528
+       (test_vcgtzd_s64): Likewise.
 
10529
+       (test_vcgtd_u64): Likewise.
 
10530
+       (test_vclezd_s64): Likewise.
 
10531
+       (test_vcltzd_s64): Likewise.
 
10532
+       (test_vtst_s64): Likewise.
 
10533
+       (test_vtst_u64): Likewise.
 
10534
+
 
10535
+2013-12-19  Dominik Vogt  <vogt@linux.vnet.ibm.com>
 
10536
+           Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
 
10537
+
 
10538
+       Backport from mainline
 
10539
+       2013-12-19  Dominik Vogt  <vogt@linux.vnet.ibm.com>
 
10540
+       * gcc/testsuite/gcc.target/s390/hotpatch-1.c: New test
 
10541
+       * gcc/testsuite/gcc.target/s390/hotpatch-2.c: New test
 
10542
+       * gcc/testsuite/gcc.target/s390/hotpatch-3.c: New test
 
10543
+       * gcc/testsuite/gcc.target/s390/hotpatch-4.c: New test
 
10544
+       * gcc/testsuite/gcc.target/s390/hotpatch-5.c: New test
 
10545
+       * gcc/testsuite/gcc.target/s390/hotpatch-6.c: New test
 
10546
+       * gcc/testsuite/gcc.target/s390/hotpatch-7.c: New test
 
10547
+       * gcc/testsuite/gcc.target/s390/hotpatch-8.c: New test
 
10548
+       * gcc/testsuite/gcc.target/s390/hotpatch-9.c: New test
 
10549
+       * gcc/testsuite/gcc.target/s390/hotpatch-10.c: New test
 
10550
+       * gcc/testsuite/gcc.target/s390/hotpatch-11.c: New test
 
10551
+       * gcc/testsuite/gcc.target/s390/hotpatch-12.c: New test
 
10552
+       * gcc/testsuite/gcc.target/s390/hotpatch-compile-1.c: New test
 
10553
+       * gcc/testsuite/gcc.target/s390/hotpatch-compile-2.c: New test
 
10554
+       * gcc/testsuite/gcc.target/s390/hotpatch-compile-3.c: New test
 
10555
+       * gcc/testsuite/gcc.target/s390/hotpatch-compile-4.c: New test
 
10556
+       * gcc/testsuite/gcc.target/s390/hotpatch-compile-5.c: New test
 
10557
+       * gcc/testsuite/gcc.target/s390/hotpatch-compile-6.c: New test
 
10558
+       * gcc/testsuite/gcc.target/s390/hotpatch-compile-7.c: New test
 
10559
+
 
10560
+2013-12-18  Janus Weil  <janus@gcc.gnu.org>
 
10561
+
 
10562
+       Backport from mainline
 
10563
+       2013-12-15  Janus Weil  <janus@gcc.gnu.org>
 
10564
+
 
10565
+       PR fortran/59493
 
10566
+       * gfortran.dg/unlimited_polymorphic_15.f90: New.
 
10567
+
 
10568
+2013-12-15  Uros Bizjak  <ubizjak@gmail.com>
 
10569
+
 
10570
+       PR testsuite/58630
 
10571
+       * gcc.target/i386/pr43662.c (dg-options):
 
10572
+       Add -maccumulate-outgoing-args.
 
10573
+       * gcc.target/i386/pr43869.c (dg-options): Ditto.
 
10574
+       * gcc.target/i386/pr57003.c (dg-options): Ditto.
 
10575
+       * gcc.target/i386/avx-vzeroupper-16.c (dg-options):
 
10576
+       Remove -mtune=generic and add -maccumulate-outgoing-args instead.
 
10577
+       * gcc.target/i386/avx-vzeroupper-17.c (dg-options): Ditto.
 
10578
+       * gcc.target/i386/avx-vzeroupper-18.c (dg-options): Ditto.
 
10579
+       * gcc.target/x86_64/abi/callabi/func-1.c (dg-options):
 
10580
+       Add -maccumulate-outgoing-args.
 
10581
+       * gcc.target/x86_64/abi/callabi/func-2a.c (dg-options): Ditto.
 
10582
+       * gcc.target/x86_64/abi/callabi/func-2b.c (dg-options): Ditto.
 
10583
+       * gcc.target/x86_64/abi/callabi/func-indirect.c (dg-options): Ditto.
 
10584
+       * gcc.target/x86_64/abi/callabi/func-indirect-2a.c (dg-options): Ditto.
 
10585
+       * gcc.target/x86_64/abi/callabi/func-indirect-2b.c (dg-options): Ditto.
 
10586
+       * gcc.target/x86_64/abi/callabi/leaf-1.c (dg-options): Ditto.
 
10587
+       * gcc.target/x86_64/abi/callabi/leaf-2.c (dg-options): Ditto.
 
10588
+       * gcc.target/x86_64/abi/callabi/pr38891.c (dg-options): Ditto.
 
10589
+       * gcc.target/x86_64/abi/callabi/vaarg-1.c (dg-options): Ditto.
 
10590
+       * gcc.target/x86_64/abi/callabi/vaarg-2.c (dg-options): Ditto.
 
10591
+       * gcc.target/x86_64/abi/callabi/vaarg-3.c (dg-options): Ditto.
 
10592
+       * gcc.target/x86_64/abi/callabi/vaarg-4a.c (dg-options): Ditto.
 
10593
+       * gcc.target/x86_64/abi/callabi/vaarg-4b.c (dg-options): Ditto.
 
10594
+       * gcc.target/x86_64/abi/callabi/vaarg-5a.c (dg-options): Ditto.
 
10595
+       * gcc.target/x86_64/abi/callabi/vaarg-5b.c (dg-options): Ditto.
 
10596
+
9297
10597
+2013-12-12  Jakub Jelinek  <jakub@redhat.com>
9298
10598
+
9299
10599
+       PR middle-end/59470
9597
10897
+
9598
10898
+2013-11-10  Wei Mi  <wmi@google.com>
9599
10899
+
9600
 
+       * testsuite/gcc.dg/pr57518.c: Backport regex fix from r200720.
 
10900
+       * gcc.dg/pr57518.c: Backport regex fix from r200720.
9601
10901
+
9602
10902
+2013-11-07  H.J. Lu  <hongjiu.lu@intel.com>
9603
10903
+
9611
10911
+2013-11-06  Wei Mi  <wmi@google.com>
9612
10912
+
9613
10913
+       PR regression/58985
9614
 
+       * testsuite/gcc.dg/pr57518.c: Add subreg in regexp pattern.
 
10914
+       * gcc.dg/pr57518.c: Add subreg in regexp pattern.
9615
10915
+
9616
10916
+2013-11-05  Steven G. Kargl <kargl@gcc.gnu.org>
9617
10917
+
9716
11016
 2013-10-16  Release Manager
9717
11017
 
9718
11018
        * GCC 4.8.2 released.
9719
 
@@ -39,9 +458,9 @@
 
11019
@@ -39,9 +541,9 @@
9720
11020
        Backport from mainline
9721
11021
        2013-06-27  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
9722
11022
 
9729
11029
 
9730
11030
 2013-10-04  Tobias Burnus  <burnus@net-b.de>
9731
11031
 
9732
 
@@ -307,8 +726,8 @@
 
11032
@@ -307,8 +809,8 @@
9733
11033
        Backport from mainline
9734
11034
        2013-08-12  Perez Read  <netfirewall@gmail.com>
9735
11035
 
9740
11040
 
9741
11041
 2013-08-11  Janus Weil  <janus@gcc.gnu.org>
9742
11042
 
9743
 
@@ -623,8 +1042,8 @@
 
11043
@@ -494,7 +996,7 @@
 
11044
        2013-06-19  Wei Mi  <wmi@google.com>
 
11045
 
 
11046
        PR rtl-optimization/57518
 
11047
-       * testsuite/gcc.dg/pr57518.c: New test.
 
11048
+       * gcc.dg/pr57518.c: New test.
 
11049
 
 
11050
 2013-06-11  Tobias Burnus  <burnus@net-b.de>
 
11051
 
 
11052
@@ -623,8 +1125,8 @@
9744
11053
 
9745
11054
 2013-05-09  Martin Jambor  <mjambor@suse.cz>
9746
11055
 
9751
11060
 
9752
11061
 2013-05-08  Marc Glisse  <marc.glisse@inria.fr>
9753
11062
 
9754
 
@@ -701,7 +1120,7 @@
 
11063
@@ -701,7 +1203,7 @@
9755
11064
        2013-04-25  Marek Polacek  <polacek@redhat.com>
9756
11065
 
9757
11066
        PR tree-optimization/57066
9760
11069
 
9761
11070
 2013-05-02  Jakub Jelinek  <jakub@redhat.com>
9762
11071
 
9763
 
@@ -727,32 +1146,32 @@
 
11072
@@ -727,32 +1229,32 @@
9764
11073
        Backport from mainline
9765
11074
        2013-04-24  Vladimir Makarov  <vmakarov@redhat.com>
9766
11075
 
9801
11110
 
9802
11111
 2013-05-02  Ian Bolton  <ian.bolton@arm.com>
9803
11112
 
 
11113
@@ -1102,7 +1604,7 @@
 
11114
        2013-03-29  Tobias Burnus  <burnus@net-b.de>
 
11115
 
 
11116
        PR fortran/56737
 
11117
-       * testsuite/gfortran.dg/fmt_cache_3.f90: New.
 
11118
+       * gfortran.dg/fmt_cache_3.f90: New.
 
11119
 
 
11120
 2013-04-02  Richard Biener  <rguenther@suse.de>
 
11121
 
 
11122
@@ -1636,7 +2138,7 @@
 
11123
 2013-02-20  Jan Hubicka  <jh@suse.cz>
 
11124
 
 
11125
        PR tree-optimization/56265
 
11126
-       * testsuite/g++.dg/ipa/devirt-11.C: New testcase.
 
11127
+       * g++.dg/ipa/devirt-11.C: New testcase.
 
11128
 
 
11129
 2013-02-20  Richard Biener  <rguenther@suse.de>
 
11130
 
 
11131
@@ -1823,11 +2325,9 @@
 
11132
 
 
11133
        Avoid instrumenting duplicated memory access in the same basic block
 
11134
        * c-c++-common/asan/no-redundant-instrumentation-1.c: New test.
 
11135
-       * testsuite/c-c++-common/asan/no-redundant-instrumentation-2.c:
 
11136
-       Likewise.
 
11137
-       * testsuite/c-c++-common/asan/no-redundant-instrumentation-3.c:
 
11138
-       Likewise.
 
11139
-       * testsuite/c-c++-common/asan/inc.c: Likewise.
 
11140
+       * c-c++-common/asan/no-redundant-instrumentation-2.c: Likewise.
 
11141
+       * c-c++-common/asan/no-redundant-instrumentation-3.c: Likewise.
 
11142
+       * c-c++-common/asan/inc.c: Likewise.
 
11143
 
 
11144
 2013-02-12  Vladimir Makarov  <vmakarov@redhat.com>
 
11145
 
9804
11146
Index: gcc/testsuite/gfortran.fortran-torture/compile/pr57517.f90
9805
11147
===================================================================
9806
11148
--- a/src/gcc/testsuite/gfortran.fortran-torture/compile/pr57517.f90    (.../tags/gcc_4_8_2_release)
10128
11470
-  ev.e::~e_u();        // { dg-error "e_u. has not been declared" }
10129
11471
+  ev.e::~e_u();        // { dg-error "" }
10130
11472
 }
 
11473
Index: gcc/testsuite/g++.dg/cpp0x/access02.C
 
11474
===================================================================
 
11475
--- a/src/gcc/testsuite/g++.dg/cpp0x/access02.C (.../tags/gcc_4_8_2_release)
 
11476
+++ b/src/gcc/testsuite/g++.dg/cpp0x/access02.C (.../branches/gcc-4_8-branch)
 
11477
@@ -0,0 +1,39 @@
 
11478
+// PR c++/58954
 
11479
+// { dg-require-effective-target c++11 }
 
11480
+
 
11481
+template<class T>
 
11482
+T&& declval();
 
11483
+
 
11484
+template<class T>
 
11485
+struct foo_argument
 
11486
+{
 
11487
+  template<class Ret, class C, class Arg>
 
11488
+  static Arg test(Ret (C::*)(Arg));
 
11489
+
 
11490
+  typedef decltype(test(&T::template foo<>)) type;
 
11491
+};
 
11492
+
 
11493
+template<class T, class>
 
11494
+struct dependent { typedef T type; };
 
11495
+
 
11496
+template<class T>
 
11497
+struct base
 
11498
+{
 
11499
+  template<class Ignore = void>
 
11500
+  auto foo(int i) -> decltype(declval<
 
11501
+    typename dependent<T&, Ignore>::type
 
11502
+  >().foo_impl(i));
 
11503
+};
 
11504
+
 
11505
+struct derived : base<derived>
 
11506
+{
 
11507
+  friend struct base<derived>;
 
11508
+private:
 
11509
+  int foo_impl(int i);
 
11510
+};
 
11511
+
 
11512
+int main()
 
11513
+{
 
11514
+  foo_argument<derived>::type var = 0;
 
11515
+  return var;
 
11516
+}
10131
11517
Index: gcc/testsuite/g++.dg/cpp0x/constexpr-template6.C
10132
11518
===================================================================
10133
11519
--- a/src/gcc/testsuite/g++.dg/cpp0x/constexpr-template6.C      (.../tags/gcc_4_8_2_release)
10514
11900
===================================================================
10515
11901
--- a/src/gcc/cp/ChangeLog      (.../tags/gcc_4_8_2_release)
10516
11902
+++ b/src/gcc/cp/ChangeLog      (.../branches/gcc-4_8-branch)
10517
 
@@ -1,3 +1,78 @@
 
11903
@@ -1,3 +1,83 @@
 
11904
+2013-12-12  Jason Merrill  <jason@redhat.com>
 
11905
+
 
11906
+       PR c++/58954
 
11907
+       * pt.c (resolve_overloaded_unification): Discard access checks.
 
11908
+
10518
11909
+2013-12-05  Jason Merrill  <jason@redhat.com>
10519
11910
+
10520
11911
+       PR c++/59044
10635
12026
     case SCOPE_REF:
10636
12027
       RETURN (tsubst_qualified_id (t, args, complain, in_decl, /*done=*/true,
10637
12028
                                  /*address_p=*/false));
 
12029
@@ -15749,7 +15753,7 @@
 
12030
          if (subargs != error_mark_node
 
12031
              && !any_dependent_template_arguments_p (subargs))
 
12032
            {
 
12033
-             elem = tsubst (TREE_TYPE (fn), subargs, tf_none, NULL_TREE);
 
12034
+             elem = TREE_TYPE (instantiate_template (fn, subargs, tf_none));
 
12035
              if (try_one_overload (tparms, targs, tempargs, parm,
 
12036
                                    elem, strict, sub_strict, addr_p, explain_p)
 
12037
                  && (!goodfn || !same_type_p (goodfn, elem)))
10638
12038
@@ -17553,7 +17557,7 @@
10639
12039
     return -1;
10640
12040
 }
13426
14826
   if (optional)
13427
14827
     {
13428
14828
       tree tmp2;
 
14829
Index: gcc/fortran/class.c
 
14830
===================================================================
 
14831
--- a/src/gcc/fortran/class.c   (.../tags/gcc_4_8_2_release)
 
14832
+++ b/src/gcc/fortran/class.c   (.../branches/gcc-4_8-branch)
 
14833
@@ -2486,7 +2486,7 @@
 
14834
     return NULL;
 
14835
 
 
14836
   /* Sometimes the typespec is passed from a single call.  */
 
14837
-  if (ts->type == BT_DERIVED)
 
14838
+  if (ts->type == BT_DERIVED || ts->type == BT_CLASS)
 
14839
     return gfc_find_derived_vtab (ts->u.derived);
 
14840
 
 
14841
   /* Find the top-level namespace.  */
13429
14842
Index: gcc/fortran/decl.c
13430
14843
===================================================================
13431
14844
--- a/src/gcc/fortran/decl.c    (.../tags/gcc_4_8_2_release)
13461
14874
===================================================================
13462
14875
--- a/src/gcc/fortran/ChangeLog (.../tags/gcc_4_8_2_release)
13463
14876
+++ b/src/gcc/fortran/ChangeLog (.../branches/gcc-4_8-branch)
13464
 
@@ -1,3 +1,52 @@
 
14877
@@ -1,3 +1,60 @@
 
14878
+2013-12-18  Janus Weil  <janus@gcc.gnu.org>
 
14879
+
 
14880
+       Backport from mainline
 
14881
+       2013-12-15  Janus Weil  <janus@gcc.gnu.org>
 
14882
+
 
14883
+       PR fortran/59493
 
14884
+       * class.c (gfc_find_intrinsic_vtab): Handle BT_CLASS.
 
14885
+
13465
14886
+2013-11-30  Paul Thomas  <pault@gcc.gnu.org>
13466
14887
+
13467
14888
+       Backport from mainline
14942
16363
===================================================================
14943
16364
--- a/src/gcc/config/s390/s390.c        (.../tags/gcc_4_8_2_release)
14944
16365
+++ b/src/gcc/config/s390/s390.c        (.../branches/gcc-4_8-branch)
14945
 
@@ -883,7 +883,8 @@
 
16366
@@ -407,6 +407,65 @@
 
16367
    bytes on a z10 (or higher) CPU.  */
 
16368
 #define PREDICT_DISTANCE (TARGET_Z10 ? 384 : 2048)
 
16369
 
 
16370
+static const int s390_hotpatch_trampoline_halfwords_default = 12;
 
16371
+static const int s390_hotpatch_trampoline_halfwords_max = 1000000;
 
16372
+static int s390_hotpatch_trampoline_halfwords = -1;
 
16373
+
 
16374
+/* Return the argument of the given hotpatch attribute or the default value if
 
16375
+   no argument is present.  */
 
16376
+
 
16377
+static inline int
 
16378
+get_hotpatch_attribute (tree hotpatch_attr)
 
16379
+{
 
16380
+  const_tree args;
 
16381
+
 
16382
+  args = TREE_VALUE (hotpatch_attr);
 
16383
+
 
16384
+  return (args) ?
 
16385
+    TREE_INT_CST_LOW (TREE_VALUE (args)):
 
16386
+    s390_hotpatch_trampoline_halfwords_default;
 
16387
+}
 
16388
+
 
16389
+/* Check whether the hotpatch attribute is applied to a function and, if it has
 
16390
+   an argument, the argument is valid.  */
 
16391
+
 
16392
+static tree
 
16393
+s390_handle_hotpatch_attribute (tree *node, tree name, tree args,
 
16394
+                               int flags ATTRIBUTE_UNUSED, bool *no_add_attrs)
 
16395
+{
 
16396
+  if (TREE_CODE (*node) != FUNCTION_DECL)
 
16397
+    {
 
16398
+      warning (OPT_Wattributes, "%qE attribute only applies to functions",
 
16399
+              name);
 
16400
+      *no_add_attrs = true;
 
16401
+    }
 
16402
+  else if (args)
 
16403
+    {
 
16404
+      tree expr = TREE_VALUE (args);
 
16405
+
 
16406
+      if (TREE_CODE (expr) != INTEGER_CST
 
16407
+         || !INTEGRAL_TYPE_P (TREE_TYPE (expr))
 
16408
+         || TREE_INT_CST_HIGH (expr) != 0
 
16409
+         || TREE_INT_CST_LOW (expr) > (unsigned int)
 
16410
+         s390_hotpatch_trampoline_halfwords_max)
 
16411
+       {
 
16412
+         error ("requested %qE attribute is not a non-negative integer"
 
16413
+                " constant or too large (max. %d)", name,
 
16414
+                s390_hotpatch_trampoline_halfwords_max);
 
16415
+         *no_add_attrs = true;
 
16416
+       }
 
16417
+    }
 
16418
+
 
16419
+  return NULL_TREE;
 
16420
+}
 
16421
+
 
16422
+static const struct attribute_spec s390_attribute_table[] = {
 
16423
+  { "hotpatch", 0, 1, true, false, false, s390_handle_hotpatch_attribute, false
 
16424
+  },
 
16425
+  /* End element.  */
 
16426
+  { NULL,        0, 0, false, false, false, NULL, false }
 
16427
+};
 
16428
+
 
16429
 /* Return the alignment for LABEL.  We default to the -falign-labels
 
16430
    value except for the literal pool base label.  */
 
16431
 int
 
16432
@@ -883,7 +942,8 @@
14946
16433
        {
14947
16434
          /* For CCRAWmode put the required cc mask into the second
14948
16435
             operand.  */
14952
16439
            *op1 = gen_rtx_CONST_INT (VOIDmode, 1 << (3 - INTVAL (*op1)));
14953
16440
          *op0 = XVECEXP (*op0, 0, 0);
14954
16441
          *code = new_code;
14955
 
@@ -7846,6 +7847,9 @@
 
16442
@@ -1594,6 +1654,46 @@
 
16443
 static void
 
16444
 s390_option_override (void)
 
16445
 {
 
16446
+  unsigned int i;
 
16447
+  cl_deferred_option *opt;
 
16448
+  vec<cl_deferred_option> *v =
 
16449
+    (vec<cl_deferred_option> *) s390_deferred_options;
 
16450
+
 
16451
+  if (v)
 
16452
+    FOR_EACH_VEC_ELT (*v, i, opt)
 
16453
+      {
 
16454
+       switch (opt->opt_index)
 
16455
+         {
 
16456
+         case OPT_mhotpatch:
 
16457
+           s390_hotpatch_trampoline_halfwords = (opt->value) ?
 
16458
+             s390_hotpatch_trampoline_halfwords_default : -1;
 
16459
+           break;
 
16460
+         case OPT_mhotpatch_:
 
16461
+           {
 
16462
+             int val;
 
16463
+
 
16464
+             val = integral_argument (opt->arg);
 
16465
+             if (val == -1)
 
16466
+               {
 
16467
+                 /* argument is not a plain number */
 
16468
+                 error ("argument to %qs should be a non-negative integer",
 
16469
+                        "-mhotpatch=");
 
16470
+                 break;
 
16471
+               }
 
16472
+             else if (val > s390_hotpatch_trampoline_halfwords_max)
 
16473
+               {
 
16474
+                 error ("argument to %qs is too large (max. %d)",
 
16475
+                        "-mhotpatch=", s390_hotpatch_trampoline_halfwords_max);
 
16476
+                 break;
 
16477
+               }
 
16478
+             s390_hotpatch_trampoline_halfwords = val;
 
16479
+             break;
 
16480
+           }
 
16481
+         default:
 
16482
+           gcc_unreachable ();
 
16483
+         }
 
16484
+      }
 
16485
+
 
16486
   /* Set up function hooks.  */
 
16487
   init_machine_status = s390_init_machine_status;
 
16488
 
 
16489
@@ -5311,6 +5411,102 @@
 
16490
   gcc_unreachable ();
 
16491
 }
 
16492
 
 
16493
+/* Returns -1 if the function should not be made hotpatchable.  Otherwise it
 
16494
+   returns a number >= 0 that is the desired size of the hotpatch trampoline
 
16495
+   in halfwords. */
 
16496
+
 
16497
+static int s390_function_num_hotpatch_trampoline_halfwords (tree decl,
 
16498
+                                                           bool do_warn)
 
16499
+{
 
16500
+  tree attr;
 
16501
+
 
16502
+  if (DECL_DECLARED_INLINE_P (decl)
 
16503
+      || DECL_ARTIFICIAL (decl)
 
16504
+      || MAIN_NAME_P (DECL_NAME (decl)))
 
16505
+    {
 
16506
+      /* - Explicitly inlined functions cannot be hotpatched.
 
16507
+        - Artificial functions need not be hotpatched.
 
16508
+        - Making the main function hotpatchable is useless. */
 
16509
+      return -1;
 
16510
+    }
 
16511
+  attr = lookup_attribute ("hotpatch", DECL_ATTRIBUTES (decl));
 
16512
+  if (attr || s390_hotpatch_trampoline_halfwords >= 0)
 
16513
+    {
 
16514
+      if (lookup_attribute ("always_inline", DECL_ATTRIBUTES (decl)))
 
16515
+       {
 
16516
+         if (do_warn)
 
16517
+           warning (OPT_Wattributes, "function %qE with the %qs attribute"
 
16518
+                    " is not hotpatchable", DECL_NAME (decl), "always_inline");
 
16519
+         return -1;
 
16520
+       }
 
16521
+      else
 
16522
+       {
 
16523
+         return (attr) ?
 
16524
+           get_hotpatch_attribute (attr) : s390_hotpatch_trampoline_halfwords;
 
16525
+       }
 
16526
+    }
 
16527
+
 
16528
+  return -1;
 
16529
+}
 
16530
+
 
16531
+/* Hook to determine if one function can safely inline another.  */
 
16532
+
 
16533
+static bool
 
16534
+s390_can_inline_p (tree caller, tree callee)
 
16535
+{
 
16536
+  if (s390_function_num_hotpatch_trampoline_halfwords (callee, false) >= 0)
 
16537
+    return false;
 
16538
+
 
16539
+  return default_target_can_inline_p (caller, callee);
 
16540
+}
 
16541
+
 
16542
+/* Write the extra assembler code needed to declare a function properly.  */
 
16543
+
 
16544
+void
 
16545
+s390_asm_output_function_label (FILE *asm_out_file, const char *fname,
 
16546
+                               tree decl)
 
16547
+{
 
16548
+  int hotpatch_trampoline_halfwords = -1;
 
16549
+
 
16550
+  if (decl)
 
16551
+    {
 
16552
+      hotpatch_trampoline_halfwords =
 
16553
+       s390_function_num_hotpatch_trampoline_halfwords (decl, true);
 
16554
+      if (hotpatch_trampoline_halfwords >= 0
 
16555
+         && decl_function_context (decl) != NULL_TREE)
 
16556
+       {
 
16557
+         warning_at (0, DECL_SOURCE_LOCATION (decl),
 
16558
+                     "hotpatch_prologue is not compatible with nested"
 
16559
+                     " function");
 
16560
+         hotpatch_trampoline_halfwords = -1;
 
16561
+       }
 
16562
+    }
 
16563
+
 
16564
+  if (hotpatch_trampoline_halfwords > 0)
 
16565
+    {
 
16566
+      int i;
 
16567
+
 
16568
+      /* Add a trampoline code area before the function label and initialize it
 
16569
+        with two-byte nop instructions.  This area can be overwritten with code
 
16570
+        that jumps to a patched version of the function.  */
 
16571
+      for (i = 0; i < hotpatch_trampoline_halfwords; i++)
 
16572
+       asm_fprintf (asm_out_file, "\tnopr\t%%r7\n");
 
16573
+      /* Note:  The function label must be aligned so that (a) the bytes of the
 
16574
+        following nop do not cross a cacheline boundary, and (b) a jump address
 
16575
+        (eight bytes for 64 bit targets, 4 bytes for 32 bit targets) can be
 
16576
+        stored directly before the label without crossing a cacheline
 
16577
+        boundary.  All this is necessary to make sure the trampoline code can
 
16578
+        be changed atomically.  */
 
16579
+    }
 
16580
+
 
16581
+  ASM_OUTPUT_LABEL (asm_out_file, fname);
 
16582
+
 
16583
+  /* Output a four-byte nop if hotpatching is enabled.  This can be overwritten
 
16584
+     atomically with a relative backwards jump to the trampoline area.  */
 
16585
+  if (hotpatch_trampoline_halfwords >= 0)
 
16586
+    asm_fprintf (asm_out_file, "\tnop\t0\n");
 
16587
+}
 
16588
+
 
16589
 /* Output machine-dependent UNSPECs occurring in address constant X
 
16590
    in assembler syntax to stdio stream FILE.  Returns true if the
 
16591
    constant X could be recognized, false otherwise.  */
 
16592
@@ -7846,6 +8042,9 @@
14956
16593
     {
14957
16594
       bb = BASIC_BLOCK (bb_index);
14958
16595
 
14962
16599
       FOR_BB_INSNS (bb, insn)
14963
16600
        {
14964
16601
          rtx ite, cc, pat, target;
14965
 
@@ -7959,7 +7963,10 @@
 
16602
@@ -7959,7 +8158,10 @@
14966
16603
   if (!result)
14967
16604
     return;
14968
16605
 
14974
16611
   INSN_CODE (tbegin_insn) = -1;
14975
16612
   df_insn_rescan (tbegin_insn);
14976
16613
 
14977
 
@@ -9573,6 +9580,7 @@
 
16614
@@ -9573,6 +9775,7 @@
14978
16615
   const int CC3 = 1 << 0;
14979
16616
   rtx abort_label = gen_label_rtx ();
14980
16617
   rtx leave_label = gen_label_rtx ();
14982
16619
   rtx retry_reg = gen_reg_rtx (SImode);
14983
16620
   rtx retry_label = NULL_RTX;
14984
16621
   rtx jump;
14985
 
@@ -9581,16 +9589,17 @@
 
16622
@@ -9581,16 +9784,17 @@
14986
16623
   if (retry != NULL_RTX)
14987
16624
     {
14988
16625
       emit_move_insn (retry_reg, retry);
15004
16641
 
15005
16642
   jump = s390_emit_jump (abort_label,
15006
16643
                         gen_rtx_NE (VOIDmode,
15007
 
@@ -9611,6 +9620,10 @@
 
16644
@@ -9611,6 +9815,10 @@
15008
16645
   /* Abort handler code.  */
15009
16646
 
15010
16647
   emit_label (abort_label);
15015
16652
   if (retry != NULL_RTX)
15016
16653
     {
15017
16654
       rtx count = gen_reg_rtx (SImode);
15018
 
@@ -9622,7 +9635,7 @@
 
16655
@@ -9622,7 +9830,7 @@
15019
16656
       add_reg_note (jump, REG_BR_PROB, very_unlikely);
15020
16657
 
15021
16658
       /* CC2 - transient failure. Perform retry with ppa.  */
15024
16661
       emit_insn (gen_subsi3 (count, count, retry_reg));
15025
16662
       emit_insn (gen_tx_assist (count));
15026
16663
       jump = emit_jump_insn (gen_doloop_si64 (retry_label,
15027
 
@@ -9632,10 +9645,6 @@
 
16664
@@ -9632,10 +9840,6 @@
15028
16665
       LABEL_NUSES (retry_label) = 1;
15029
16666
     }
15030
16667
 
15035
16672
   emit_label (leave_label);
15036
16673
 }
15037
16674
 
15038
 
@@ -9674,6 +9683,9 @@
 
16675
@@ -9674,6 +9878,9 @@
15039
16676
 s390_init_builtins (void)
15040
16677
 {
15041
16678
   tree ftype, uint64_type;
15045
16682
 
15046
16683
   /* void foo (void) */
15047
16684
   ftype = build_function_type_list (void_type_node, NULL_TREE);
15048
 
@@ -9684,17 +9696,17 @@
 
16685
@@ -9684,17 +9891,17 @@
15049
16686
   ftype = build_function_type_list (void_type_node, integer_type_node,
15050
16687
                                    NULL_TREE);
15051
16688
   add_builtin_function ("__builtin_tabort", ftype,
15066
16703
 
15067
16704
   /* int foo (void *, int) */
15068
16705
   ftype = build_function_type_list (integer_type_node, ptr_type_node,
15069
 
@@ -9702,11 +9714,11 @@
 
16706
@@ -9702,11 +9909,11 @@
15070
16707
   add_builtin_function ("__builtin_tbegin_retry", ftype,
15071
16708
                        S390_BUILTIN_TBEGIN_RETRY,
15072
16709
                        BUILT_IN_MD,
15080
16717
 
15081
16718
   /* int foo (void) */
15082
16719
   ftype = build_function_type_list (integer_type_node, NULL_TREE);
 
16720
@@ -11622,6 +11829,12 @@
 
16721
 #undef TARGET_CANONICALIZE_COMPARISON
 
16722
 #define TARGET_CANONICALIZE_COMPARISON s390_canonicalize_comparison
 
16723
 
 
16724
+#undef TARGET_ATTRIBUTE_TABLE
 
16725
+#define TARGET_ATTRIBUTE_TABLE s390_attribute_table
 
16726
+
 
16727
+#undef TARGET_CAN_INLINE_P
 
16728
+#define TARGET_CAN_INLINE_P s390_can_inline_p
 
16729
+
 
16730
 struct gcc_target targetm = TARGET_INITIALIZER;
 
16731
 
 
16732
 #include "gt-s390.h"
 
16733
Index: gcc/config/s390/s390.h
 
16734
===================================================================
 
16735
--- a/src/gcc/config/s390/s390.h        (.../tags/gcc_4_8_2_release)
 
16736
+++ b/src/gcc/config/s390/s390.h        (.../branches/gcc-4_8-branch)
 
16737
@@ -217,7 +217,7 @@
 
16738
 #define STACK_BOUNDARY 64
 
16739
 
 
16740
 /* Allocation boundary (in *bits*) for the code of a function.  */
 
16741
-#define FUNCTION_BOUNDARY 32
 
16742
+#define FUNCTION_BOUNDARY 64
 
16743
 
 
16744
 /* There is no point aligning anything to a rounder boundary than this.  */
 
16745
 #define BIGGEST_ALIGNMENT 64
 
16746
@@ -878,6 +878,9 @@
 
16747
   fputc ('\n', (FILE));                                                        \
 
16748
 } while (0)
 
16749
 
 
16750
+#undef ASM_OUTPUT_FUNCTION_LABEL
 
16751
+#define ASM_OUTPUT_FUNCTION_LABEL(FILE, NAME, DECL) \
 
16752
+  s390_asm_output_function_label (FILE, NAME, DECL)
 
16753
 
 
16754
 /* Miscellaneous parameters.  */
 
16755
 
15083
16756
Index: gcc/config/s390/s390.md
15084
16757
===================================================================
15085
16758
--- a/src/gcc/config/s390/s390.md       (.../tags/gcc_4_8_2_release)
15158
16831
-  "ppa\t%0,%1,1"
15159
16832
+  "ppa\t%0,%1,%2"
15160
16833
   [(set_attr "op_type" "RRF")])
 
16834
Index: gcc/config/s390/s390.opt
 
16835
===================================================================
 
16836
--- a/src/gcc/config/s390/s390.opt      (.../tags/gcc_4_8_2_release)
 
16837
+++ b/src/gcc/config/s390/s390.opt      (.../branches/gcc-4_8-branch)
 
16838
@@ -96,6 +96,14 @@
 
16839
 Target Report RejectNegative Negative(msoft-float) InverseMask(SOFT_FLOAT, HARD_FLOAT)
 
16840
 Enable hardware floating point
 
16841
 
 
16842
+mhotpatch
 
16843
+Target Report Var(s390_deferred_options) Defer
 
16844
+Prepend the function label with 12 two-byte Nop instructions, and add a four byte Nop instruction after the label for hotpatching.
 
16845
+
 
16846
+mhotpatch=
 
16847
+Target RejectNegative Report Joined Var(s390_deferred_options) Defer
 
16848
+Prepend the function label with the given number of two-byte Nop instructions, and add a four byte Nop instruction after the label for hotpatching.
 
16849
+
 
16850
 mlong-double-128
 
16851
 Target Report RejectNegative Negative(mlong-double-64) Mask(LONG_DOUBLE_128)
 
16852
 Use 128-bit long double
15161
16853
Index: gcc/config/s390/htmxlintrin.h
15162
16854
===================================================================
15163
16855
--- a/src/gcc/config/s390/htmxlintrin.h (.../tags/gcc_4_8_2_release)
15248
16940
          && (tdb->abort_code == 9 /* fetch conflict */
15249
16941
              || tdb->abort_code == 10 /* store conflict */));
15250
16942
 }
 
16943
Index: gcc/config/s390/s390-protos.h
 
16944
===================================================================
 
16945
--- a/src/gcc/config/s390/s390-protos.h (.../tags/gcc_4_8_2_release)
 
16946
+++ b/src/gcc/config/s390/s390-protos.h (.../branches/gcc-4_8-branch)
 
16947
@@ -110,5 +110,6 @@
 
16948
 extern int s390_branch_condition_mask (rtx);
 
16949
 extern int s390_compare_and_branch_condition_mask (rtx);
 
16950
 extern bool s390_extzv_shift_ok (int, int, unsigned HOST_WIDE_INT);
 
16951
+extern void s390_asm_output_function_label (FILE *, const char *, tree);
 
16952
 
 
16953
 #endif /* RTX_CODE */
15251
16954
Index: gcc/config/sparc/t-rtems
15252
16955
===================================================================
15253
16956
--- a/src/gcc/config/sparc/t-rtems      (.../tags/gcc_4_8_2_release)
17517
19220
 Mask(FPU_SINGLE)
17518
19221
 
17519
19222
 ;; Set if the a double-precision FPU is present but is restricted to
 
19223
Index: gcc/config/aarch64/aarch64-simd.md
 
19224
===================================================================
 
19225
--- a/src/gcc/config/aarch64/aarch64-simd.md    (.../tags/gcc_4_8_2_release)
 
19226
+++ b/src/gcc/config/aarch64/aarch64-simd.md    (.../branches/gcc-4_8-branch)
 
19227
@@ -21,7 +21,7 @@
 
19228
 
 
19229
 ; Main data types used by the insntructions
 
19230
 
 
19231
-(define_attr "simd_mode" "unknown,none,V8QI,V16QI,V4HI,V8HI,V2SI,V4SI,V2DI,V2SF,V4SF,V2DF,OI,CI,XI,DI,DF,SI,HI,QI"
 
19232
+(define_attr "simd_mode" "unknown,none,V8QI,V16QI,V4HI,V8HI,V2SI,V4SI,V2DI,V2SF,V4SF,V2DF,OI,CI,XI,DI,DF,SI,SF,HI,QI"
 
19233
   (const_string "unknown"))
 
19234
 
 
19235
 
 
19236
@@ -1548,12 +1548,12 @@
 
19237
 
 
19238
     case LTU:
 
19239
     case GEU:
 
19240
-      emit_insn (gen_aarch64_cmhs<mode> (mask, operands[4], operands[5]));
 
19241
+      emit_insn (gen_aarch64_cmgeu<mode> (mask, operands[4], operands[5]));
 
19242
       break;
 
19243
 
 
19244
     case LEU:
 
19245
     case GTU:
 
19246
-      emit_insn (gen_aarch64_cmhi<mode> (mask, operands[4], operands[5]));
 
19247
+      emit_insn (gen_aarch64_cmgtu<mode> (mask, operands[4], operands[5]));
 
19248
       break;
 
19249
 
 
19250
     case NE:
 
19251
@@ -3034,48 +3034,181 @@
 
19252
 )
 
19253
 
 
19254
 
 
19255
-;; cm(eq|ge|le|lt|gt)
 
19256
+;; cm(eq|ge|gt|lt|le)
 
19257
+;; Note, we have constraints for Dz and Z as different expanders
 
19258
+;; have different ideas of what should be passed to this pattern.
 
19259
 
 
19260
-(define_insn "aarch64_cm<cmp><mode>"
 
19261
+(define_insn "aarch64_cm<optab><mode>"
 
19262
   [(set (match_operand:<V_cmp_result> 0 "register_operand" "=w,w")
 
19263
-        (unspec:<V_cmp_result>
 
19264
-         [(match_operand:VSDQ_I_DI 1 "register_operand" "w,w")
 
19265
-          (match_operand:VSDQ_I_DI 2 "aarch64_simd_reg_or_zero" "w,Z")]
 
19266
-          VCMP_S))]
 
19267
+       (neg:<V_cmp_result>
 
19268
+         (COMPARISONS:<V_cmp_result>
 
19269
+           (match_operand:VDQ 1 "register_operand" "w,w")
 
19270
+           (match_operand:VDQ 2 "aarch64_simd_reg_or_zero" "w,ZDz")
 
19271
+         )))]
 
19272
   "TARGET_SIMD"
 
19273
   "@
 
19274
-  cm<cmp>\t%<v>0<Vmtype>, %<v>1<Vmtype>, %<v>2<Vmtype>
 
19275
-  cm<cmp>\t%<v>0<Vmtype>, %<v>1<Vmtype>, #0"
 
19276
+  cm<n_optab>\t%<v>0<Vmtype>, %<v><cmp_1><Vmtype>, %<v><cmp_2><Vmtype>
 
19277
+  cm<optab>\t%<v>0<Vmtype>, %<v>1<Vmtype>, #0"
 
19278
   [(set_attr "simd_type" "simd_cmp")
 
19279
    (set_attr "simd_mode" "<MODE>")]
 
19280
 )
 
19281
 
 
19282
-;; cm(hs|hi|tst)
 
19283
+(define_insn_and_split "aarch64_cm<optab>di"
 
19284
+  [(set (match_operand:DI 0 "register_operand" "=w,w,r")
 
19285
+       (neg:DI
 
19286
+         (COMPARISONS:DI
 
19287
+           (match_operand:DI 1 "register_operand" "w,w,r")
 
19288
+           (match_operand:DI 2 "aarch64_simd_reg_or_zero" "w,ZDz,r")
 
19289
+         )))]
 
19290
+  "TARGET_SIMD"
 
19291
+  "@
 
19292
+  cm<n_optab>\t%d0, %d<cmp_1>, %d<cmp_2>
 
19293
+  cm<optab>\t%d0, %d1, #0
 
19294
+  #"
 
19295
+  "reload_completed
 
19296
+   /* We need to prevent the split from
 
19297
+      happening in the 'w' constraint cases.  */
 
19298
+   && GP_REGNUM_P (REGNO (operands[0]))
 
19299
+   && GP_REGNUM_P (REGNO (operands[1]))"
 
19300
+  [(set (reg:CC CC_REGNUM)
 
19301
+    (compare:CC
 
19302
+      (match_dup 1)
 
19303
+      (match_dup 2)))
 
19304
+  (set (match_dup 0)
 
19305
+    (neg:DI
 
19306
+      (COMPARISONS:DI
 
19307
+       (match_operand 3 "cc_register" "")
 
19308
+       (const_int 0))))]
 
19309
+  {
 
19310
+    enum machine_mode mode = SELECT_CC_MODE (<CMP>, operands[1], operands[2]);
 
19311
+    rtx cc_reg = aarch64_gen_compare_reg (<CMP>, operands[1], operands[2]);
 
19312
+    rtx comparison = gen_rtx_<CMP> (mode, operands[1], operands[2]);
 
19313
+    emit_insn (gen_cstoredi_neg (operands[0], comparison, cc_reg));
 
19314
+    DONE;
 
19315
+  }
 
19316
+  [(set_attr "simd_type" "simd_cmp")
 
19317
+   (set_attr "simd_mode" "DI")]
 
19318
+)
 
19319
 
 
19320
-(define_insn "aarch64_cm<cmp><mode>"
 
19321
+;; cm(hs|hi)
 
19322
+
 
19323
+(define_insn "aarch64_cm<optab><mode>"
 
19324
   [(set (match_operand:<V_cmp_result> 0 "register_operand" "=w")
 
19325
-        (unspec:<V_cmp_result>
 
19326
-         [(match_operand:VSDQ_I_DI 1 "register_operand" "w")
 
19327
-          (match_operand:VSDQ_I_DI 2 "register_operand" "w")]
 
19328
-          VCMP_U))]
 
19329
+       (neg:<V_cmp_result>
 
19330
+         (UCOMPARISONS:<V_cmp_result>
 
19331
+           (match_operand:VDQ 1 "register_operand" "w")
 
19332
+           (match_operand:VDQ 2 "register_operand" "w")
 
19333
+         )))]
 
19334
   "TARGET_SIMD"
 
19335
-  "cm<cmp>\t%<v>0<Vmtype>, %<v>1<Vmtype>, %<v>2<Vmtype>"
 
19336
+  "cm<n_optab>\t%<v>0<Vmtype>, %<v><cmp_1><Vmtype>, %<v><cmp_2><Vmtype>"
 
19337
   [(set_attr "simd_type" "simd_cmp")
 
19338
    (set_attr "simd_mode" "<MODE>")]
 
19339
 )
 
19340
 
 
19341
-;; fcm(eq|ge|le|lt|gt)
 
19342
+(define_insn_and_split "aarch64_cm<optab>di"
 
19343
+  [(set (match_operand:DI 0 "register_operand" "=w,r")
 
19344
+       (neg:DI
 
19345
+         (UCOMPARISONS:DI
 
19346
+           (match_operand:DI 1 "register_operand" "w,r")
 
19347
+           (match_operand:DI 2 "aarch64_simd_reg_or_zero" "w,r")
 
19348
+         )))]
 
19349
+  "TARGET_SIMD"
 
19350
+  "@
 
19351
+  cm<n_optab>\t%d0, %d<cmp_1>, %d<cmp_2>
 
19352
+  #"
 
19353
+  "reload_completed
 
19354
+   /* We need to prevent the split from
 
19355
+      happening in the 'w' constraint cases.  */
 
19356
+   && GP_REGNUM_P (REGNO (operands[0]))
 
19357
+   && GP_REGNUM_P (REGNO (operands[1]))"
 
19358
+  [(set (reg:CC CC_REGNUM)
 
19359
+    (compare:CC
 
19360
+      (match_dup 1)
 
19361
+      (match_dup 2)))
 
19362
+  (set (match_dup 0)
 
19363
+    (neg:DI
 
19364
+      (UCOMPARISONS:DI
 
19365
+       (match_operand 3 "cc_register" "")
 
19366
+       (const_int 0))))]
 
19367
+  {
 
19368
+    enum machine_mode mode = SELECT_CC_MODE (<CMP>, operands[1], operands[2]);
 
19369
+    rtx cc_reg = aarch64_gen_compare_reg (<CMP>, operands[1], operands[2]);
 
19370
+    rtx comparison = gen_rtx_<CMP> (mode, operands[1], operands[2]);
 
19371
+    emit_insn (gen_cstoredi_neg (operands[0], comparison, cc_reg));
 
19372
+    DONE;
 
19373
+  }
 
19374
+  [(set_attr "simd_type" "simd_cmp")
 
19375
+   (set_attr "simd_mode" "DI")]
 
19376
+)
 
19377
 
 
19378
-(define_insn "aarch64_cm<cmp><mode>"
 
19379
+;; cmtst
 
19380
+
 
19381
+(define_insn "aarch64_cmtst<mode>"
 
19382
+  [(set (match_operand:<V_cmp_result> 0 "register_operand" "=w")
 
19383
+       (neg:<V_cmp_result>
 
19384
+         (ne:<V_cmp_result>
 
19385
+           (and:VDQ
 
19386
+             (match_operand:VDQ 1 "register_operand" "w")
 
19387
+             (match_operand:VDQ 2 "register_operand" "w"))
 
19388
+           (vec_duplicate:<V_cmp_result> (const_int 0)))))]
 
19389
+  "TARGET_SIMD"
 
19390
+  "cmtst\t%<v>0<Vmtype>, %<v>1<Vmtype>, %<v>2<Vmtype>"
 
19391
+  [(set_attr "simd_type" "simd_cmp")
 
19392
+   (set_attr "simd_mode" "<MODE>")]
 
19393
+)
 
19394
+
 
19395
+(define_insn_and_split "aarch64_cmtstdi"
 
19396
+  [(set (match_operand:DI 0 "register_operand" "=w,r")
 
19397
+       (neg:DI
 
19398
+         (ne:DI
 
19399
+           (and:DI
 
19400
+             (match_operand:DI 1 "register_operand" "w,r")
 
19401
+             (match_operand:DI 2 "register_operand" "w,r"))
 
19402
+           (const_int 0))))]
 
19403
+  "TARGET_SIMD"
 
19404
+  "@
 
19405
+  cmtst\t%d0, %d1, %d2
 
19406
+  #"
 
19407
+  "reload_completed
 
19408
+   /* We need to prevent the split from
 
19409
+      happening in the 'w' constraint cases.  */
 
19410
+   && GP_REGNUM_P (REGNO (operands[0]))
 
19411
+   && GP_REGNUM_P (REGNO (operands[1]))"
 
19412
+   [(set (reg:CC_NZ CC_REGNUM)
 
19413
+       (compare:CC_NZ
 
19414
+        (and:DI (match_dup 1)
 
19415
+                 (match_dup 2))
 
19416
+        (const_int 0)))
 
19417
+  (set (match_dup 0)
 
19418
+    (neg:DI
 
19419
+      (ne:DI
 
19420
+       (match_operand 3 "cc_register" "")
 
19421
+       (const_int 0))))]
 
19422
+  {
 
19423
+    rtx and_tree = gen_rtx_AND (DImode, operands[1], operands[2]);
 
19424
+    enum machine_mode mode = SELECT_CC_MODE (NE, and_tree, const0_rtx);
 
19425
+    rtx cc_reg = aarch64_gen_compare_reg (NE, and_tree, const0_rtx);
 
19426
+    rtx comparison = gen_rtx_NE (mode, and_tree, const0_rtx);
 
19427
+    emit_insn (gen_cstoredi_neg (operands[0], comparison, cc_reg));
 
19428
+    DONE;
 
19429
+  }
 
19430
+  [(set_attr "simd_type" "simd_cmp")
 
19431
+   (set_attr "simd_mode" "DI")]
 
19432
+)
 
19433
+
 
19434
+;; fcm(eq|ge|gt|le|lt)
 
19435
+
 
19436
+(define_insn "aarch64_cm<optab><mode>"
 
19437
   [(set (match_operand:<V_cmp_result> 0 "register_operand" "=w,w")
 
19438
-       (unspec:<V_cmp_result>
 
19439
-         [(match_operand:VDQF 1 "register_operand" "w,w")
 
19440
-          (match_operand:VDQF 2 "aarch64_simd_reg_or_zero" "w,Dz")]
 
19441
-          VCMP_S))]
 
19442
+       (neg:<V_cmp_result>
 
19443
+         (COMPARISONS:<V_cmp_result>
 
19444
+           (match_operand:VALLF 1 "register_operand" "w,w")
 
19445
+           (match_operand:VALLF 2 "aarch64_simd_reg_or_zero" "w,YDz")
 
19446
+         )))]
 
19447
   "TARGET_SIMD"
 
19448
   "@
 
19449
-  fcm<cmp>\t%<v>0<Vmtype>, %<v>1<Vmtype>, %<v>2<Vmtype>
 
19450
-  fcm<cmp>\t%<v>0<Vmtype>, %<v>1<Vmtype>, 0"
 
19451
+  fcm<n_optab>\t%<v>0<Vmtype>, %<v><cmp_1><Vmtype>, %<v><cmp_2><Vmtype>
 
19452
+  fcm<optab>\t%<v>0<Vmtype>, %<v>1<Vmtype>, 0"
 
19453
   [(set_attr "simd_type" "simd_fcmp")
 
19454
    (set_attr "simd_mode" "<MODE>")]
 
19455
 )
 
19456
Index: gcc/config/aarch64/predicates.md
 
19457
===================================================================
 
19458
--- a/src/gcc/config/aarch64/predicates.md      (.../tags/gcc_4_8_2_release)
 
19459
+++ b/src/gcc/config/aarch64/predicates.md      (.../branches/gcc-4_8-branch)
 
19460
@@ -31,6 +31,11 @@
 
19461
        (ior (match_operand 0 "register_operand")
 
19462
            (match_test "op == const0_rtx"))))
 
19463
 
 
19464
+(define_predicate "aarch64_reg_or_fp_zero"
 
19465
+  (and (match_code "reg,subreg,const_double")
 
19466
+       (ior (match_operand 0 "register_operand")
 
19467
+           (match_test "aarch64_float_const_zero_rtx_p (op)"))))
 
19468
+
 
19469
 (define_predicate "aarch64_reg_zero_or_m1_or_1"
 
19470
   (and (match_code "reg,subreg,const_int")
 
19471
        (ior (match_operand 0 "register_operand")
 
19472
Index: gcc/config/aarch64/arm_neon.h
 
19473
===================================================================
 
19474
--- a/src/gcc/config/aarch64/arm_neon.h (.../tags/gcc_4_8_2_release)
 
19475
+++ b/src/gcc/config/aarch64/arm_neon.h (.../branches/gcc-4_8-branch)
 
19476
@@ -19551,28 +19551,28 @@
 
19477
 __extension__ static __inline uint8x8_t __attribute__ ((__always_inline__))
 
19478
 vcge_u8 (uint8x8_t __a, uint8x8_t __b)
 
19479
 {
 
19480
-  return (uint8x8_t) __builtin_aarch64_cmhsv8qi ((int8x8_t) __a,
 
19481
+  return (uint8x8_t) __builtin_aarch64_cmgeuv8qi ((int8x8_t) __a,
 
19482
                                                 (int8x8_t) __b);
 
19483
 }
 
19484
 
 
19485
 __extension__ static __inline uint16x4_t __attribute__ ((__always_inline__))
 
19486
 vcge_u16 (uint16x4_t __a, uint16x4_t __b)
 
19487
 {
 
19488
-  return (uint16x4_t) __builtin_aarch64_cmhsv4hi ((int16x4_t) __a,
 
19489
+  return (uint16x4_t) __builtin_aarch64_cmgeuv4hi ((int16x4_t) __a,
 
19490
                                                  (int16x4_t) __b);
 
19491
 }
 
19492
 
 
19493
 __extension__ static __inline uint32x2_t __attribute__ ((__always_inline__))
 
19494
 vcge_u32 (uint32x2_t __a, uint32x2_t __b)
 
19495
 {
 
19496
-  return (uint32x2_t) __builtin_aarch64_cmhsv2si ((int32x2_t) __a,
 
19497
+  return (uint32x2_t) __builtin_aarch64_cmgeuv2si ((int32x2_t) __a,
 
19498
                                                  (int32x2_t) __b);
 
19499
 }
 
19500
 
 
19501
 __extension__ static __inline uint64x1_t __attribute__ ((__always_inline__))
 
19502
 vcge_u64 (uint64x1_t __a, uint64x1_t __b)
 
19503
 {
 
19504
-  return (uint64x1_t) __builtin_aarch64_cmhsdi ((int64x1_t) __a,
 
19505
+  return (uint64x1_t) __builtin_aarch64_cmgeudi ((int64x1_t) __a,
 
19506
                                                (int64x1_t) __b);
 
19507
 }
 
19508
 
 
19509
@@ -19603,28 +19603,28 @@
 
19510
 __extension__ static __inline uint8x16_t __attribute__ ((__always_inline__))
 
19511
 vcgeq_u8 (uint8x16_t __a, uint8x16_t __b)
 
19512
 {
 
19513
-  return (uint8x16_t) __builtin_aarch64_cmhsv16qi ((int8x16_t) __a,
 
19514
+  return (uint8x16_t) __builtin_aarch64_cmgeuv16qi ((int8x16_t) __a,
 
19515
                                                   (int8x16_t) __b);
 
19516
 }
 
19517
 
 
19518
 __extension__ static __inline uint16x8_t __attribute__ ((__always_inline__))
 
19519
 vcgeq_u16 (uint16x8_t __a, uint16x8_t __b)
 
19520
 {
 
19521
-  return (uint16x8_t) __builtin_aarch64_cmhsv8hi ((int16x8_t) __a,
 
19522
+  return (uint16x8_t) __builtin_aarch64_cmgeuv8hi ((int16x8_t) __a,
 
19523
                                                  (int16x8_t) __b);
 
19524
 }
 
19525
 
 
19526
 __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__))
 
19527
 vcgeq_u32 (uint32x4_t __a, uint32x4_t __b)
 
19528
 {
 
19529
-  return (uint32x4_t) __builtin_aarch64_cmhsv4si ((int32x4_t) __a,
 
19530
+  return (uint32x4_t) __builtin_aarch64_cmgeuv4si ((int32x4_t) __a,
 
19531
                                                  (int32x4_t) __b);
 
19532
 }
 
19533
 
 
19534
 __extension__ static __inline uint64x2_t __attribute__ ((__always_inline__))
 
19535
 vcgeq_u64 (uint64x2_t __a, uint64x2_t __b)
 
19536
 {
 
19537
-  return (uint64x2_t) __builtin_aarch64_cmhsv2di ((int64x2_t) __a,
 
19538
+  return (uint64x2_t) __builtin_aarch64_cmgeuv2di ((int64x2_t) __a,
 
19539
                                                  (int64x2_t) __b);
 
19540
 }
 
19541
 
 
19542
@@ -19637,7 +19637,7 @@
 
19543
 __extension__ static __inline uint64x1_t __attribute__ ((__always_inline__))
 
19544
 vcged_u64 (uint64x1_t __a, uint64x1_t __b)
 
19545
 {
 
19546
-  return (uint64x1_t) __builtin_aarch64_cmhsdi ((int64x1_t) __a,
 
19547
+  return (uint64x1_t) __builtin_aarch64_cmgeudi ((int64x1_t) __a,
 
19548
                                                (int64x1_t) __b);
 
19549
 }
 
19550
 
 
19551
@@ -19676,28 +19676,28 @@
 
19552
 __extension__ static __inline uint8x8_t __attribute__ ((__always_inline__))
 
19553
 vcgt_u8 (uint8x8_t __a, uint8x8_t __b)
 
19554
 {
 
19555
-  return (uint8x8_t) __builtin_aarch64_cmhiv8qi ((int8x8_t) __a,
 
19556
+  return (uint8x8_t) __builtin_aarch64_cmgtuv8qi ((int8x8_t) __a,
 
19557
                                                 (int8x8_t) __b);
 
19558
 }
 
19559
 
 
19560
 __extension__ static __inline uint16x4_t __attribute__ ((__always_inline__))
 
19561
 vcgt_u16 (uint16x4_t __a, uint16x4_t __b)
 
19562
 {
 
19563
-  return (uint16x4_t) __builtin_aarch64_cmhiv4hi ((int16x4_t) __a,
 
19564
+  return (uint16x4_t) __builtin_aarch64_cmgtuv4hi ((int16x4_t) __a,
 
19565
                                                  (int16x4_t) __b);
 
19566
 }
 
19567
 
 
19568
 __extension__ static __inline uint32x2_t __attribute__ ((__always_inline__))
 
19569
 vcgt_u32 (uint32x2_t __a, uint32x2_t __b)
 
19570
 {
 
19571
-  return (uint32x2_t) __builtin_aarch64_cmhiv2si ((int32x2_t) __a,
 
19572
+  return (uint32x2_t) __builtin_aarch64_cmgtuv2si ((int32x2_t) __a,
 
19573
                                                  (int32x2_t) __b);
 
19574
 }
 
19575
 
 
19576
 __extension__ static __inline uint64x1_t __attribute__ ((__always_inline__))
 
19577
 vcgt_u64 (uint64x1_t __a, uint64x1_t __b)
 
19578
 {
 
19579
-  return (uint64x1_t) __builtin_aarch64_cmhidi ((int64x1_t) __a,
 
19580
+  return (uint64x1_t) __builtin_aarch64_cmgtudi ((int64x1_t) __a,
 
19581
                                                (int64x1_t) __b);
 
19582
 }
 
19583
 
 
19584
@@ -19728,28 +19728,28 @@
 
19585
 __extension__ static __inline uint8x16_t __attribute__ ((__always_inline__))
 
19586
 vcgtq_u8 (uint8x16_t __a, uint8x16_t __b)
 
19587
 {
 
19588
-  return (uint8x16_t) __builtin_aarch64_cmhiv16qi ((int8x16_t) __a,
 
19589
+  return (uint8x16_t) __builtin_aarch64_cmgtuv16qi ((int8x16_t) __a,
 
19590
                                                   (int8x16_t) __b);
 
19591
 }
 
19592
 
 
19593
 __extension__ static __inline uint16x8_t __attribute__ ((__always_inline__))
 
19594
 vcgtq_u16 (uint16x8_t __a, uint16x8_t __b)
 
19595
 {
 
19596
-  return (uint16x8_t) __builtin_aarch64_cmhiv8hi ((int16x8_t) __a,
 
19597
+  return (uint16x8_t) __builtin_aarch64_cmgtuv8hi ((int16x8_t) __a,
 
19598
                                                  (int16x8_t) __b);
 
19599
 }
 
19600
 
 
19601
 __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__))
 
19602
 vcgtq_u32 (uint32x4_t __a, uint32x4_t __b)
 
19603
 {
 
19604
-  return (uint32x4_t) __builtin_aarch64_cmhiv4si ((int32x4_t) __a,
 
19605
+  return (uint32x4_t) __builtin_aarch64_cmgtuv4si ((int32x4_t) __a,
 
19606
                                                  (int32x4_t) __b);
 
19607
 }
 
19608
 
 
19609
 __extension__ static __inline uint64x2_t __attribute__ ((__always_inline__))
 
19610
 vcgtq_u64 (uint64x2_t __a, uint64x2_t __b)
 
19611
 {
 
19612
-  return (uint64x2_t) __builtin_aarch64_cmhiv2di ((int64x2_t) __a,
 
19613
+  return (uint64x2_t) __builtin_aarch64_cmgtuv2di ((int64x2_t) __a,
 
19614
                                                  (int64x2_t) __b);
 
19615
 }
 
19616
 
 
19617
@@ -19762,7 +19762,7 @@
 
19618
 __extension__ static __inline uint64x1_t __attribute__ ((__always_inline__))
 
19619
 vcgtd_u64 (uint64x1_t __a, uint64x1_t __b)
 
19620
 {
 
19621
-  return (uint64x1_t) __builtin_aarch64_cmhidi ((int64x1_t) __a,
 
19622
+  return (uint64x1_t) __builtin_aarch64_cmgtudi ((int64x1_t) __a,
 
19623
                                                (int64x1_t) __b);
 
19624
 }
 
19625
 
 
19626
@@ -19801,28 +19801,28 @@
 
19627
 __extension__ static __inline uint8x8_t __attribute__ ((__always_inline__))
 
19628
 vcle_u8 (uint8x8_t __a, uint8x8_t __b)
 
19629
 {
 
19630
-  return (uint8x8_t) __builtin_aarch64_cmhsv8qi ((int8x8_t) __b,
 
19631
+  return (uint8x8_t) __builtin_aarch64_cmgeuv8qi ((int8x8_t) __b,
 
19632
                                                 (int8x8_t) __a);
 
19633
 }
 
19634
 
 
19635
 __extension__ static __inline uint16x4_t __attribute__ ((__always_inline__))
 
19636
 vcle_u16 (uint16x4_t __a, uint16x4_t __b)
 
19637
 {
 
19638
-  return (uint16x4_t) __builtin_aarch64_cmhsv4hi ((int16x4_t) __b,
 
19639
+  return (uint16x4_t) __builtin_aarch64_cmgeuv4hi ((int16x4_t) __b,
 
19640
                                                  (int16x4_t) __a);
 
19641
 }
 
19642
 
 
19643
 __extension__ static __inline uint32x2_t __attribute__ ((__always_inline__))
 
19644
 vcle_u32 (uint32x2_t __a, uint32x2_t __b)
 
19645
 {
 
19646
-  return (uint32x2_t) __builtin_aarch64_cmhsv2si ((int32x2_t) __b,
 
19647
+  return (uint32x2_t) __builtin_aarch64_cmgeuv2si ((int32x2_t) __b,
 
19648
                                                  (int32x2_t) __a);
 
19649
 }
 
19650
 
 
19651
 __extension__ static __inline uint64x1_t __attribute__ ((__always_inline__))
 
19652
 vcle_u64 (uint64x1_t __a, uint64x1_t __b)
 
19653
 {
 
19654
-  return (uint64x1_t) __builtin_aarch64_cmhsdi ((int64x1_t) __b,
 
19655
+  return (uint64x1_t) __builtin_aarch64_cmgeudi ((int64x1_t) __b,
 
19656
                                                (int64x1_t) __a);
 
19657
 }
 
19658
 
 
19659
@@ -19853,28 +19853,28 @@
 
19660
 __extension__ static __inline uint8x16_t __attribute__ ((__always_inline__))
 
19661
 vcleq_u8 (uint8x16_t __a, uint8x16_t __b)
 
19662
 {
 
19663
-  return (uint8x16_t) __builtin_aarch64_cmhsv16qi ((int8x16_t) __b,
 
19664
+  return (uint8x16_t) __builtin_aarch64_cmgeuv16qi ((int8x16_t) __b,
 
19665
                                                   (int8x16_t) __a);
 
19666
 }
 
19667
 
 
19668
 __extension__ static __inline uint16x8_t __attribute__ ((__always_inline__))
 
19669
 vcleq_u16 (uint16x8_t __a, uint16x8_t __b)
 
19670
 {
 
19671
-  return (uint16x8_t) __builtin_aarch64_cmhsv8hi ((int16x8_t) __b,
 
19672
+  return (uint16x8_t) __builtin_aarch64_cmgeuv8hi ((int16x8_t) __b,
 
19673
                                                  (int16x8_t) __a);
 
19674
 }
 
19675
 
 
19676
 __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__))
 
19677
 vcleq_u32 (uint32x4_t __a, uint32x4_t __b)
 
19678
 {
 
19679
-  return (uint32x4_t) __builtin_aarch64_cmhsv4si ((int32x4_t) __b,
 
19680
+  return (uint32x4_t) __builtin_aarch64_cmgeuv4si ((int32x4_t) __b,
 
19681
                                                  (int32x4_t) __a);
 
19682
 }
 
19683
 
 
19684
 __extension__ static __inline uint64x2_t __attribute__ ((__always_inline__))
 
19685
 vcleq_u64 (uint64x2_t __a, uint64x2_t __b)
 
19686
 {
 
19687
-  return (uint64x2_t) __builtin_aarch64_cmhsv2di ((int64x2_t) __b,
 
19688
+  return (uint64x2_t) __builtin_aarch64_cmgeuv2di ((int64x2_t) __b,
 
19689
                                                  (int64x2_t) __a);
 
19690
 }
 
19691
 
 
19692
@@ -19919,28 +19919,28 @@
 
19693
 __extension__ static __inline uint8x8_t __attribute__ ((__always_inline__))
 
19694
 vclt_u8 (uint8x8_t __a, uint8x8_t __b)
 
19695
 {
 
19696
-  return (uint8x8_t) __builtin_aarch64_cmhiv8qi ((int8x8_t) __b,
 
19697
+  return (uint8x8_t) __builtin_aarch64_cmgtuv8qi ((int8x8_t) __b,
 
19698
                                                 (int8x8_t) __a);
 
19699
 }
 
19700
 
 
19701
 __extension__ static __inline uint16x4_t __attribute__ ((__always_inline__))
 
19702
 vclt_u16 (uint16x4_t __a, uint16x4_t __b)
 
19703
 {
 
19704
-  return (uint16x4_t) __builtin_aarch64_cmhiv4hi ((int16x4_t) __b,
 
19705
+  return (uint16x4_t) __builtin_aarch64_cmgtuv4hi ((int16x4_t) __b,
 
19706
                                                  (int16x4_t) __a);
 
19707
 }
 
19708
 
 
19709
 __extension__ static __inline uint32x2_t __attribute__ ((__always_inline__))
 
19710
 vclt_u32 (uint32x2_t __a, uint32x2_t __b)
 
19711
 {
 
19712
-  return (uint32x2_t) __builtin_aarch64_cmhiv2si ((int32x2_t) __b,
 
19713
+  return (uint32x2_t) __builtin_aarch64_cmgtuv2si ((int32x2_t) __b,
 
19714
                                                  (int32x2_t) __a);
 
19715
 }
 
19716
 
 
19717
 __extension__ static __inline uint64x1_t __attribute__ ((__always_inline__))
 
19718
 vclt_u64 (uint64x1_t __a, uint64x1_t __b)
 
19719
 {
 
19720
-  return (uint64x1_t) __builtin_aarch64_cmhidi ((int64x1_t) __b,
 
19721
+  return (uint64x1_t) __builtin_aarch64_cmgtudi ((int64x1_t) __b,
 
19722
                                                (int64x1_t) __a);
 
19723
 }
 
19724
 
 
19725
@@ -19971,28 +19971,28 @@
 
19726
 __extension__ static __inline uint8x16_t __attribute__ ((__always_inline__))
 
19727
 vcltq_u8 (uint8x16_t __a, uint8x16_t __b)
 
19728
 {
 
19729
-  return (uint8x16_t) __builtin_aarch64_cmhiv16qi ((int8x16_t) __b,
 
19730
+  return (uint8x16_t) __builtin_aarch64_cmgtuv16qi ((int8x16_t) __b,
 
19731
                                                   (int8x16_t) __a);
 
19732
 }
 
19733
 
 
19734
 __extension__ static __inline uint16x8_t __attribute__ ((__always_inline__))
 
19735
 vcltq_u16 (uint16x8_t __a, uint16x8_t __b)
 
19736
 {
 
19737
-  return (uint16x8_t) __builtin_aarch64_cmhiv8hi ((int16x8_t) __b,
 
19738
+  return (uint16x8_t) __builtin_aarch64_cmgtuv8hi ((int16x8_t) __b,
 
19739
                                                  (int16x8_t) __a);
 
19740
 }
 
19741
 
 
19742
 __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__))
 
19743
 vcltq_u32 (uint32x4_t __a, uint32x4_t __b)
 
19744
 {
 
19745
-  return (uint32x4_t) __builtin_aarch64_cmhiv4si ((int32x4_t) __b,
 
19746
+  return (uint32x4_t) __builtin_aarch64_cmgtuv4si ((int32x4_t) __b,
 
19747
                                                  (int32x4_t) __a);
 
19748
 }
 
19749
 
 
19750
 __extension__ static __inline uint64x2_t __attribute__ ((__always_inline__))
 
19751
 vcltq_u64 (uint64x2_t __a, uint64x2_t __b)
 
19752
 {
 
19753
-  return (uint64x2_t) __builtin_aarch64_cmhiv2di ((int64x2_t) __b,
 
19754
+  return (uint64x2_t) __builtin_aarch64_cmgtuv2di ((int64x2_t) __b,
 
19755
                                                  (int64x2_t) __a);
 
19756
 }
 
19757
 
 
19758
Index: gcc/config/aarch64/aarch64.md
 
19759
===================================================================
 
19760
--- a/src/gcc/config/aarch64/aarch64.md (.../tags/gcc_4_8_2_release)
 
19761
+++ b/src/gcc/config/aarch64/aarch64.md (.../branches/gcc-4_8-branch)
 
19762
@@ -2211,7 +2211,7 @@
 
19763
    (set_attr "mode" "SI")]
 
19764
 )
 
19765
 
 
19766
-(define_insn "*cstore<mode>_neg"
 
19767
+(define_insn "cstore<mode>_neg"
 
19768
   [(set (match_operand:ALLI 0 "register_operand" "=r")
 
19769
        (neg:ALLI (match_operator:ALLI 1 "aarch64_comparison_operator"
 
19770
                  [(match_operand 2 "cc_register" "") (const_int 0)])))]
 
19771
Index: gcc/config/aarch64/aarch64-simd-builtins.def
 
19772
===================================================================
 
19773
--- a/src/gcc/config/aarch64/aarch64-simd-builtins.def  (.../tags/gcc_4_8_2_release)
 
19774
+++ b/src/gcc/config/aarch64/aarch64-simd-builtins.def  (.../branches/gcc-4_8-branch)
 
19775
@@ -217,8 +217,8 @@
 
19776
   BUILTIN_VSDQ_I_DI (BINOP, cmle)
 
19777
   BUILTIN_VSDQ_I_DI (BINOP, cmlt)
 
19778
   /* Implemented by aarch64_cm<cmp><mode>.  */
 
19779
-  BUILTIN_VSDQ_I_DI (BINOP, cmhs)
 
19780
-  BUILTIN_VSDQ_I_DI (BINOP, cmhi)
 
19781
+  BUILTIN_VSDQ_I_DI (BINOP, cmgeu)
 
19782
+  BUILTIN_VSDQ_I_DI (BINOP, cmgtu)
 
19783
   BUILTIN_VSDQ_I_DI (BINOP, cmtst)
 
19784
 
 
19785
   /* Implemented by aarch64_<fmaxmin><mode>.  */
 
19786
Index: gcc/config/aarch64/iterators.md
 
19787
===================================================================
 
19788
--- a/src/gcc/config/aarch64/iterators.md       (.../tags/gcc_4_8_2_release)
 
19789
+++ b/src/gcc/config/aarch64/iterators.md       (.../branches/gcc-4_8-branch)
 
19790
@@ -83,6 +83,9 @@
 
19791
 ;; Vector Float modes.
 
19792
 (define_mode_iterator VDQF [V2SF V4SF V2DF])
 
19793
 
 
19794
+;; All Float modes.
 
19795
+(define_mode_iterator VALLF [V2SF V4SF V2DF SF DF])
 
19796
+
 
19797
 ;; Vector Float modes with 2 elements.
 
19798
 (define_mode_iterator V2F [V2SF V2DF])
 
19799
 
 
19800
@@ -213,13 +216,6 @@
 
19801
     UNSPEC_URSHL       ; Used in aarch64-simd.md.
 
19802
     UNSPEC_SQRSHL      ; Used in aarch64-simd.md.
 
19803
     UNSPEC_UQRSHL      ; Used in aarch64-simd.md.
 
19804
-    UNSPEC_CMEQ                ; Used in aarch64-simd.md.
 
19805
-    UNSPEC_CMLE                ; Used in aarch64-simd.md.
 
19806
-    UNSPEC_CMLT                ; Used in aarch64-simd.md.
 
19807
-    UNSPEC_CMGE                ; Used in aarch64-simd.md.
 
19808
-    UNSPEC_CMGT                ; Used in aarch64-simd.md.
 
19809
-    UNSPEC_CMHS                ; Used in aarch64-simd.md.
 
19810
-    UNSPEC_CMHI                ; Used in aarch64-simd.md.
 
19811
     UNSPEC_SSLI                ; Used in aarch64-simd.md.
 
19812
     UNSPEC_USLI                ; Used in aarch64-simd.md.
 
19813
     UNSPEC_SSRI                ; Used in aarch64-simd.md.
 
19814
@@ -227,7 +223,6 @@
 
19815
     UNSPEC_SSHLL       ; Used in aarch64-simd.md.
 
19816
     UNSPEC_USHLL       ; Used in aarch64-simd.md.
 
19817
     UNSPEC_ADDP                ; Used in aarch64-simd.md.
 
19818
-    UNSPEC_CMTST       ; Used in aarch64-simd.md.
 
19819
     UNSPEC_FMAX                ; Used in aarch64-simd.md.
 
19820
     UNSPEC_FMIN                ; Used in aarch64-simd.md.
 
19821
     UNSPEC_BSL         ; Used in aarch64-simd.md.
 
19822
@@ -251,6 +246,7 @@
 
19823
 
 
19824
 ;; For scalar usage of vector/FP registers
 
19825
 (define_mode_attr v [(QI "b") (HI "h") (SI "s") (DI "d")
 
19826
+                   (SF "s") (DF "d")
 
19827
                    (V8QI "") (V16QI "")
 
19828
                    (V4HI "") (V8HI "")
 
19829
                    (V2SI "") (V4SI  "")
 
19830
@@ -305,7 +301,8 @@
 
19831
                         (V4SF ".4s") (V2DF ".2d")
 
19832
                         (DI   "")    (SI   "")
 
19833
                         (HI   "")    (QI   "")
 
19834
-                        (TI   "")])
 
19835
+                        (TI   "")    (SF   "")
 
19836
+                        (DF   "")])
 
19837
 
 
19838
 ;; Register suffix narrowed modes for VQN.
 
19839
 (define_mode_attr Vmntype [(V8HI ".8b") (V4SI ".4h")
 
19840
@@ -444,7 +441,8 @@
 
19841
                                (V2SI "V2SI") (V4SI  "V4SI")
 
19842
                                (DI   "DI")   (V2DI  "V2DI")
 
19843
                                (V2SF "V2SI") (V4SF  "V4SI")
 
19844
-                               (V2DF "V2DI")])
 
19845
+                               (V2DF "V2DI") (DF    "DI")
 
19846
+                               (SF   "SI")])
 
19847
 
 
19848
 ;; Lower case mode of results of comparison operations.
 
19849
 (define_mode_attr v_cmp_result [(V8QI "v8qi") (V16QI "v16qi")
 
19850
@@ -452,7 +450,8 @@
 
19851
                                (V2SI "v2si") (V4SI  "v4si")
 
19852
                                (DI   "di")   (V2DI  "v2di")
 
19853
                                (V2SF "v2si") (V4SF  "v4si")
 
19854
-                               (V2DF "v2di")])
 
19855
+                               (V2DF "v2di") (DF    "di")
 
19856
+                               (SF   "si")])
 
19857
 
 
19858
 ;; Vm for lane instructions is restricted to FP_LO_REGS.
 
19859
 (define_mode_attr vwx [(V4HI "x") (V8HI "x") (HI "x")
 
19860
@@ -543,6 +542,12 @@
 
19861
 ;; Code iterator for signed variants of vector saturating binary ops.
 
19862
 (define_code_iterator SBINQOPS [ss_plus ss_minus])
 
19863
 
 
19864
+;; Comparison operators for <F>CM.
 
19865
+(define_code_iterator COMPARISONS [lt le eq ge gt])
 
19866
+
 
19867
+;; Unsigned comparison operators.
 
19868
+(define_code_iterator UCOMPARISONS [ltu leu geu gtu])
 
19869
+
 
19870
 ;; -------------------------------------------------------------------
 
19871
 ;; Code Attributes
 
19872
 ;; -------------------------------------------------------------------
 
19873
@@ -571,8 +576,29 @@
 
19874
                         (eq "eq")
 
19875
                         (ne "ne")
 
19876
                         (lt "lt")
 
19877
-                        (ge "ge")])
 
19878
+                        (ge "ge")
 
19879
+                        (le "le")
 
19880
+                        (gt "gt")
 
19881
+                        (ltu "ltu")
 
19882
+                        (leu "leu")
 
19883
+                        (geu "geu")
 
19884
+                        (gtu "gtu")])
 
19885
 
 
19886
+;; For comparison operators we use the FCM* and CM* instructions.
 
19887
+;; As there are no CMLE or CMLT instructions which act on 3 vector
 
19888
+;; operands, we must use CMGE or CMGT and swap the order of the
 
19889
+;; source operands.
 
19890
+
 
19891
+(define_code_attr n_optab [(lt "gt") (le "ge") (eq "eq") (ge "ge") (gt "gt")
 
19892
+                          (ltu "hi") (leu "hs") (geu "hs") (gtu "hi")])
 
19893
+(define_code_attr cmp_1   [(lt "2") (le "2") (eq "1") (ge "1") (gt "1")
 
19894
+                          (ltu "2") (leu "2") (geu "1") (gtu "1")])
 
19895
+(define_code_attr cmp_2   [(lt "1") (le "1") (eq "2") (ge "2") (gt "2")
 
19896
+                          (ltu "1") (leu "1") (geu "2") (gtu "2")])
 
19897
+
 
19898
+(define_code_attr CMP [(lt "LT") (le "LE") (eq "EQ") (ge "GE") (gt "GT")
 
19899
+                          (ltu "LTU") (leu "LEU") (geu "GEU") (gtu "GTU")])
 
19900
+
 
19901
 ;; Optab prefix for sign/zero-extending operations
 
19902
 (define_code_attr su_optab [(sign_extend "") (zero_extend "u")
 
19903
                            (div "") (udiv "u")
 
19904
@@ -680,11 +706,6 @@
 
19905
                                UNSPEC_SQSHRN UNSPEC_UQSHRN
 
19906
                                UNSPEC_SQRSHRN UNSPEC_UQRSHRN])
 
19907
 
 
19908
-(define_int_iterator VCMP_S [UNSPEC_CMEQ UNSPEC_CMGE UNSPEC_CMGT
 
19909
-                            UNSPEC_CMLE UNSPEC_CMLT])
 
19910
-
 
19911
-(define_int_iterator VCMP_U [UNSPEC_CMHS UNSPEC_CMHI UNSPEC_CMTST])
 
19912
-
 
19913
 (define_int_iterator PERMUTE [UNSPEC_ZIP1 UNSPEC_ZIP2
 
19914
                              UNSPEC_TRN1 UNSPEC_TRN2
 
19915
                              UNSPEC_UZP1 UNSPEC_UZP2])
 
19916
@@ -768,12 +789,6 @@
 
19917
                         (UNSPEC_RADDHN2 "add")
 
19918
                         (UNSPEC_RSUBHN2 "sub")])
 
19919
 
 
19920
-(define_int_attr cmp [(UNSPEC_CMGE "ge") (UNSPEC_CMGT "gt")
 
19921
-                     (UNSPEC_CMLE "le") (UNSPEC_CMLT "lt")
 
19922
-                      (UNSPEC_CMEQ "eq")
 
19923
-                     (UNSPEC_CMHS "hs") (UNSPEC_CMHI "hi")
 
19924
-                     (UNSPEC_CMTST "tst")])
 
19925
-
 
19926
 (define_int_attr offsetlr [(UNSPEC_SSLI        "1") (UNSPEC_USLI "1")
 
19927
                           (UNSPEC_SSRI "0") (UNSPEC_USRI "0")])
 
19928
 
17520
19929
Index: gcc/config/rs6000/rs6000.md
17521
19930
===================================================================
17522
19931
--- a/src/gcc/config/rs6000/rs6000.md   (.../tags/gcc_4_8_2_release)
17608
20017
       /* Unwind the stack to just below the saved registers.  */
17609
20018
       emit_insn (gen_addsi3 (stack_pointer_rtx,
17610
20019
                              hard_frame_pointer_rtx,
 
20020
@@ -23583,8 +23598,8 @@
 
20021
 
 
20022
   if (crtl->calls_eh_return)
 
20023
     emit_insn (gen_addsi3 (stack_pointer_rtx,
 
20024
-               stack_pointer_rtx,
 
20025
-               GEN_INT (ARM_EH_STACKADJ_REGNUM)));
 
20026
+                          stack_pointer_rtx,
 
20027
+                          gen_rtx_REG (SImode, ARM_EH_STACKADJ_REGNUM)));
 
20028
 
 
20029
   if (IS_STACKALIGN (func_type))
 
20030
     /* Restore the original stack pointer.  Before prologue, the stack was
17611
20031
Index: gcc/config/arm/vfp.md
17612
20032
===================================================================
17613
20033
--- a/src/gcc/config/arm/vfp.md (.../tags/gcc_4_8_2_release)
18913
21333
 @go_include@ go/doc.lo.dep
18914
21334
 go/doc.lo.dep: $(go_go_doc_files)
18915
21335
        $(BUILDDEPS)
 
21336
Index: libcpp/po/pt_BR.po
 
21337
===================================================================
 
21338
--- a/src/libcpp/po/pt_BR.po    (.../tags/gcc_4_8_2_release)
 
21339
+++ b/src/libcpp/po/pt_BR.po    (.../branches/gcc-4_8-branch)
 
21340
@@ -0,0 +1,908 @@
 
21341
+# Brazilian Portuguese translation for cpplib
 
21342
+# Copyright (C) 2013 Free Software Foundation, Inc.
 
21343
+# This file is distributed under the same license as the gcc package.
 
21344
+# Rafael Ferreira <rafael.f.f1@gmail.com>, 2013.
 
21345
+#
 
21346
+msgid ""
 
21347
+msgstr ""
 
21348
+"Project-Id-Version: cpplib 4.8.0\n"
 
21349
+"Report-Msgid-Bugs-To: http://gcc.gnu.org/bugs.html\n"
 
21350
+"POT-Creation-Date: 2013-03-15 17:42+0000\n"
 
21351
+"PO-Revision-Date: 2013-12-18 03:12-0300\n"
 
21352
+"Last-Translator: Rafael Ferreira <rafael.f.f1@gmail.com>\n"
 
21353
+"Language-Team: Brazilian Portuguese <ldpbr-translation@lists.sourceforge.net>\n"
 
21354
+"Language: pt_BR\n"
 
21355
+"MIME-Version: 1.0\n"
 
21356
+"Content-Type: text/plain; charset=UTF-8\n"
 
21357
+"Content-Transfer-Encoding: 8bit\n"
 
21358
+"X-Generator: Poedit 1.5.7\n"
 
21359
+"Plural-Forms: nplurals=2; plural=(n > 1);\n"
 
21360
+
 
21361
+#: charset.c:673
 
21362
+#, c-format
 
21363
+msgid "conversion from %s to %s not supported by iconv"
 
21364
+msgstr "sem suporte a conversão de %s para %s por iconv"
 
21365
+
 
21366
+#: charset.c:676
 
21367
+msgid "iconv_open"
 
21368
+msgstr "iconv_open"
 
21369
+
 
21370
+#: charset.c:684
 
21371
+#, c-format
 
21372
+msgid "no iconv implementation, cannot convert from %s to %s"
 
21373
+msgstr "nenhuma implementação iconv, não foi possível converter de %s para %s"
 
21374
+
 
21375
+#: charset.c:780
 
21376
+#, c-format
 
21377
+msgid "character 0x%lx is not in the basic source character set\n"
 
21378
+msgstr "caractere 0x%lx não está no conjunto de caracteres fonte básico\n"
 
21379
+
 
21380
+#: charset.c:797 charset.c:1443
 
21381
+msgid "converting to execution character set"
 
21382
+msgstr "convertendo para conjunto de caracteres da execução"
 
21383
+
 
21384
+#: charset.c:803
 
21385
+#, c-format
 
21386
+msgid "character 0x%lx is not unibyte in execution character set"
 
21387
+msgstr "caractere 0x%lx não é unibyte no conjunto de caracteres de execução"
 
21388
+
 
21389
+#: charset.c:927
 
21390
+#, c-format
 
21391
+msgid "Character %x might not be NFKC"
 
21392
+msgstr "Caractere %x pode não ser NFKC"
 
21393
+
 
21394
+#: charset.c:993
 
21395
+msgid "universal character names are only valid in C++ and C99"
 
21396
+msgstr "nomes de caractere universais são válidos apenas em C++ e C99"
 
21397
+
 
21398
+#: charset.c:996
 
21399
+#, c-format
 
21400
+msgid "the meaning of '\\%c' is different in traditional C"
 
21401
+msgstr "o significado de \"\\%c\" é diferente em C tradicional"
 
21402
+
 
21403
+#: charset.c:1005
 
21404
+msgid "In _cpp_valid_ucn but not a UCN"
 
21405
+msgstr "Em _cpp_valid_ucn, mas não é um UCN"
 
21406
+
 
21407
+#: charset.c:1030
 
21408
+#, c-format
 
21409
+msgid "incomplete universal character name %.*s"
 
21410
+msgstr "nome de caractere universal incompleto %.*s"
 
21411
+
 
21412
+#: charset.c:1045
 
21413
+#, c-format
 
21414
+msgid "%.*s is not a valid universal character"
 
21415
+msgstr "%.*s não é um caractere universal válido"
 
21416
+
 
21417
+#: charset.c:1055 lex.c:1117
 
21418
+msgid "'$' in identifier or number"
 
21419
+msgstr "\"$\" em identificador ou número"
 
21420
+
 
21421
+#: charset.c:1065
 
21422
+#, c-format
 
21423
+msgid "universal character %.*s is not valid in an identifier"
 
21424
+msgstr "caractere universal %.*s não é válido em um identificador"
 
21425
+
 
21426
+#: charset.c:1069
 
21427
+#, c-format
 
21428
+msgid "universal character %.*s is not valid at the start of an identifier"
 
21429
+msgstr "caractere universal %.*s não é válido no começo de um identificador"
 
21430
+
 
21431
+#: charset.c:1101 charset.c:1673
 
21432
+msgid "converting UCN to source character set"
 
21433
+msgstr "convertendo UCN para conjunto de caracteres fonte"
 
21434
+
 
21435
+#: charset.c:1105
 
21436
+msgid "converting UCN to execution character set"
 
21437
+msgstr "convertendo UCN para conjunto de caracteres de execução"
 
21438
+
 
21439
+#: charset.c:1177
 
21440
+msgid "the meaning of '\\x' is different in traditional C"
 
21441
+msgstr "o significado de \"\\x\" é diferente em C tradicional"
 
21442
+
 
21443
+#: charset.c:1194
 
21444
+msgid "\\x used with no following hex digits"
 
21445
+msgstr "\\x usado com nenhum dígito hexa"
 
21446
+
 
21447
+#: charset.c:1201
 
21448
+msgid "hex escape sequence out of range"
 
21449
+msgstr "sequência de escape hexa fora de alcance"
 
21450
+
 
21451
+#: charset.c:1239
 
21452
+msgid "octal escape sequence out of range"
 
21453
+msgstr "sequência de escape octal fora de alcance"
 
21454
+
 
21455
+#: charset.c:1305
 
21456
+msgid "the meaning of '\\a' is different in traditional C"
 
21457
+msgstr "o significado de \"\\a\" é diferente em C tradicional"
 
21458
+
 
21459
+#: charset.c:1312
 
21460
+#, c-format
 
21461
+msgid "non-ISO-standard escape sequence, '\\%c'"
 
21462
+msgstr "sequência de escape não padrão ISO, \"\\%c\""
 
21463
+
 
21464
+#: charset.c:1320
 
21465
+#, c-format
 
21466
+msgid "unknown escape sequence: '\\%c'"
 
21467
+msgstr "sequência de escape desconhecida: \"\\%c\""
 
21468
+
 
21469
+#: charset.c:1328
 
21470
+#, c-format
 
21471
+msgid "unknown escape sequence: '\\%s'"
 
21472
+msgstr "sequência de escape desconhecida: \"\\%s\""
 
21473
+
 
21474
+#: charset.c:1335
 
21475
+msgid "converting escape sequence to execution character set"
 
21476
+msgstr "convertendo sequência de escape para conjunto de caracteres de execução"
 
21477
+
 
21478
+#: charset.c:1508 charset.c:1572
 
21479
+msgid "character constant too long for its type"
 
21480
+msgstr "constante caractere muito longa para seu tipo"
 
21481
+
 
21482
+#: charset.c:1511
 
21483
+msgid "multi-character character constant"
 
21484
+msgstr "constante de caractere multi-caractere"
 
21485
+
 
21486
+#: charset.c:1611
 
21487
+msgid "empty character constant"
 
21488
+msgstr "constante caractere vazia"
 
21489
+
 
21490
+#: charset.c:1720
 
21491
+#, c-format
 
21492
+msgid "failure to convert %s to %s"
 
21493
+msgstr "falha ao converter %s para %s"
 
21494
+
 
21495
+#: directives.c:224 directives.c:250
 
21496
+#, c-format
 
21497
+msgid "extra tokens at end of #%s directive"
 
21498
+msgstr "tokens extras ao final da diretiva %#s"
 
21499
+
 
21500
+#: directives.c:357
 
21501
+#, c-format
 
21502
+msgid "#%s is a GCC extension"
 
21503
+msgstr "#%s é uma extensão GCC"
 
21504
+
 
21505
+#: directives.c:362
 
21506
+#, c-format
 
21507
+msgid "#%s is a deprecated GCC extension"
 
21508
+msgstr "#%s é uma extensão GCC obsoleta"
 
21509
+
 
21510
+#: directives.c:375
 
21511
+msgid "suggest not using #elif in traditional C"
 
21512
+msgstr "sugere-se não usar #elif em C tradicional"
 
21513
+
 
21514
+#: directives.c:378
 
21515
+#, c-format
 
21516
+msgid "traditional C ignores #%s with the # indented"
 
21517
+msgstr "C tradicional ignora #%s com o # com recuo"
 
21518
+
 
21519
+#: directives.c:382
 
21520
+#, c-format
 
21521
+msgid "suggest hiding #%s from traditional C with an indented #"
 
21522
+msgstr "sugere-se ocultar #%s do C tradicional com um # com recuo"
 
21523
+
 
21524
+#: directives.c:408
 
21525
+msgid "embedding a directive within macro arguments is not portable"
 
21526
+msgstr "embutir uma diretiva dentro de argumentos macro não é portátil"
 
21527
+
 
21528
+#: directives.c:428
 
21529
+msgid "style of line directive is a GCC extension"
 
21530
+msgstr "estilo de diretiva de linha é uma extensão GCC"
 
21531
+
 
21532
+#: directives.c:483
 
21533
+#, c-format
 
21534
+msgid "invalid preprocessing directive #%s"
 
21535
+msgstr "diretiva de preprocessamento inválida #%s"
 
21536
+
 
21537
+#: directives.c:551
 
21538
+msgid "\"defined\" cannot be used as a macro name"
 
21539
+msgstr "\"defined\" não pode ser usado como um nome de macro"
 
21540
+
 
21541
+#: directives.c:557
 
21542
+#, c-format
 
21543
+msgid "\"%s\" cannot be used as a macro name as it is an operator in C++"
 
21544
+msgstr "\"%s\" não pode ser usado como um nome de macro, pois é um operador em C++"
 
21545
+
 
21546
+#: directives.c:560
 
21547
+#, c-format
 
21548
+msgid "no macro name given in #%s directive"
 
21549
+msgstr "nenhum nome de macro fornecido na diretiva #%s"
 
21550
+
 
21551
+#: directives.c:563
 
21552
+msgid "macro names must be identifiers"
 
21553
+msgstr "nomes de macro devem ser identificadores"
 
21554
+
 
21555
+#: directives.c:612
 
21556
+#, c-format
 
21557
+msgid "undefining \"%s\""
 
21558
+msgstr "removendo definição de \"%s\""
 
21559
+
 
21560
+#: directives.c:667
 
21561
+msgid "missing terminating > character"
 
21562
+msgstr "faltando caractere terminador >"
 
21563
+
 
21564
+#: directives.c:726
 
21565
+#, c-format
 
21566
+msgid "#%s expects \"FILENAME\" or <FILENAME>"
 
21567
+msgstr "#%s espera \"NOME DE ARQUIVO\" OU <NOME DE ARQUIVO>"
 
21568
+
 
21569
+#: directives.c:772
 
21570
+#, c-format
 
21571
+msgid "empty filename in #%s"
 
21572
+msgstr "nome de arquivo vazio em #%s"
 
21573
+
 
21574
+#: directives.c:782
 
21575
+msgid "#include nested too deeply"
 
21576
+msgstr "#include aninhado profundo demais"
 
21577
+
 
21578
+#: directives.c:823
 
21579
+msgid "#include_next in primary source file"
 
21580
+msgstr "#include_next no arquivo fonte primário"
 
21581
+
 
21582
+#: directives.c:849
 
21583
+#, c-format
 
21584
+msgid "invalid flag \"%s\" in line directive"
 
21585
+msgstr "opção inválida \"%s\" na diretiva line"
 
21586
+
 
21587
+#: directives.c:909
 
21588
+msgid "unexpected end of file after #line"
 
21589
+msgstr "fim de arquivo inesperado após #line"
 
21590
+
 
21591
+#: directives.c:912
 
21592
+#, c-format
 
21593
+msgid "\"%s\" after #line is not a positive integer"
 
21594
+msgstr "\"%s\" após #line não é um inteiro positivo"
 
21595
+
 
21596
+#: directives.c:918 directives.c:920
 
21597
+msgid "line number out of range"
 
21598
+msgstr "número da linha fora de alcance"
 
21599
+
 
21600
+#: directives.c:933 directives.c:1013
 
21601
+#, c-format
 
21602
+msgid "\"%s\" is not a valid filename"
 
21603
+msgstr "\"%s\" não é um nome de arquivo válido"
 
21604
+
 
21605
+#: directives.c:973
 
21606
+#, c-format
 
21607
+msgid "\"%s\" after # is not a positive integer"
 
21608
+msgstr "\"%s\" após # não é um inteiro positivo"
 
21609
+
 
21610
+#: directives.c:1068 directives.c:1070 directives.c:1072 directives.c:1658
 
21611
+#, c-format
 
21612
+msgid "%s"
 
21613
+msgstr "%s"
 
21614
+
 
21615
+#: directives.c:1096
 
21616
+#, c-format
 
21617
+msgid "invalid #%s directive"
 
21618
+msgstr "diretiva inválida #%s"
 
21619
+
 
21620
+#: directives.c:1159
 
21621
+#, c-format
 
21622
+msgid "registering pragmas in namespace \"%s\" with mismatched name expansion"
 
21623
+msgstr "registrando pragmas em espaço de nomes \"%s\" com expansão de nome incompatível"
 
21624
+
 
21625
+#: directives.c:1168
 
21626
+#, c-format
 
21627
+msgid "registering pragma \"%s\" with name expansion and no namespace"
 
21628
+msgstr "registrando pragma \"%s\" com expansão de nome e nenhum espaço de nomes"
 
21629
+
 
21630
+#: directives.c:1186
 
21631
+#, c-format
 
21632
+msgid "registering \"%s\" as both a pragma and a pragma namespace"
 
21633
+msgstr "registrando \"%s\" como tanto um pragma e um espaço de nomes de pragma"
 
21634
+
 
21635
+#: directives.c:1189
 
21636
+#, c-format
 
21637
+msgid "#pragma %s %s is already registered"
 
21638
+msgstr "#pragma %s %s já está registrado"
 
21639
+
 
21640
+#: directives.c:1192
 
21641
+#, c-format
 
21642
+msgid "#pragma %s is already registered"
 
21643
+msgstr "#pragma %s já está registrado"
 
21644
+
 
21645
+#: directives.c:1222
 
21646
+msgid "registering pragma with NULL handler"
 
21647
+msgstr "registrando pragma com manipulador NULO"
 
21648
+
 
21649
+#: directives.c:1439
 
21650
+msgid "#pragma once in main file"
 
21651
+msgstr "#pragma ocorre uma vez no arquivo principal"
 
21652
+
 
21653
+#: directives.c:1462
 
21654
+msgid "invalid #pragma push_macro directive"
 
21655
+msgstr "diretiva inválida #pragma push_macro"
 
21656
+
 
21657
+#: directives.c:1517
 
21658
+msgid "invalid #pragma pop_macro directive"
 
21659
+msgstr "diretiva inválida #pragma pop_macro"
 
21660
+
 
21661
+#: directives.c:1572
 
21662
+msgid "invalid #pragma GCC poison directive"
 
21663
+msgstr "diretiva inválida #pragma GCC poison"
 
21664
+
 
21665
+#: directives.c:1581
 
21666
+#, c-format
 
21667
+msgid "poisoning existing macro \"%s\""
 
21668
+msgstr "envenenando macro existente \"%s\""
 
21669
+
 
21670
+#: directives.c:1600
 
21671
+msgid "#pragma system_header ignored outside include file"
 
21672
+msgstr "#pragma system_header ignorado fora do arquivo include"
 
21673
+
 
21674
+#: directives.c:1625
 
21675
+#, c-format
 
21676
+msgid "cannot find source file %s"
 
21677
+msgstr "não foi possível localizar o arquivo fonte %s"
 
21678
+
 
21679
+#: directives.c:1629
 
21680
+#, c-format
 
21681
+msgid "current file is older than %s"
 
21682
+msgstr "arquivo atual é mais velho do que %s"
 
21683
+
 
21684
+#: directives.c:1653
 
21685
+#, c-format
 
21686
+msgid "invalid \"#pragma GCC %s\" directive"
 
21687
+msgstr "diretiva inválida \"#pragma GCC %s\""
 
21688
+
 
21689
+#: directives.c:1847
 
21690
+msgid "_Pragma takes a parenthesized string literal"
 
21691
+msgstr "_Pragma leva uma literal de string entre parenteses"
 
21692
+
 
21693
+#: directives.c:1968
 
21694
+msgid "#else without #if"
 
21695
+msgstr "#else sem #if"
 
21696
+
 
21697
+#: directives.c:1973
 
21698
+msgid "#else after #else"
 
21699
+msgstr "#else após #else"
 
21700
+
 
21701
+#: directives.c:1975 directives.c:2008
 
21702
+msgid "the conditional began here"
 
21703
+msgstr "a condicional começou aqui"
 
21704
+
 
21705
+#: directives.c:2001
 
21706
+msgid "#elif without #if"
 
21707
+msgstr "#elif sem #if"
 
21708
+
 
21709
+#: directives.c:2006
 
21710
+msgid "#elif after #else"
 
21711
+msgstr "#elif após #else"
 
21712
+
 
21713
+#: directives.c:2044
 
21714
+msgid "#endif without #if"
 
21715
+msgstr "#endif sem #if"
 
21716
+
 
21717
+#: directives.c:2124
 
21718
+msgid "missing '(' after predicate"
 
21719
+msgstr "faltando \"(\" após predicado"
 
21720
+
 
21721
+#: directives.c:2139
 
21722
+msgid "missing ')' to complete answer"
 
21723
+msgstr "faltando \")\" para uma resposta completa"
 
21724
+
 
21725
+#: directives.c:2159
 
21726
+msgid "predicate's answer is empty"
 
21727
+msgstr "resposta do predicado está vazia"
 
21728
+
 
21729
+#: directives.c:2186
 
21730
+msgid "assertion without predicate"
 
21731
+msgstr "asserção sem predicado"
 
21732
+
 
21733
+#: directives.c:2189
 
21734
+msgid "predicate must be an identifier"
 
21735
+msgstr "predicado deve ser um identificador"
 
21736
+
 
21737
+#: directives.c:2275
 
21738
+#, c-format
 
21739
+msgid "\"%s\" re-asserted"
 
21740
+msgstr "\"%s\" re-assertado"
 
21741
+
 
21742
+#: directives.c:2567
 
21743
+#, c-format
 
21744
+msgid "unterminated #%s"
 
21745
+msgstr "#%s não terminado"
 
21746
+
 
21747
+#: directives-only.c:221 lex.c:2234 traditional.c:162
 
21748
+msgid "unterminated comment"
 
21749
+msgstr "comentário não terminado"
 
21750
+
 
21751
+#: errors.c:234
 
21752
+msgid "stdout"
 
21753
+msgstr "saída padrão"
 
21754
+
 
21755
+#: errors.c:236
 
21756
+#, c-format
 
21757
+msgid "%s: %s"
 
21758
+msgstr "%s: %s"
 
21759
+
 
21760
+#: expr.c:479 expr.c:577
 
21761
+msgid "fixed-point constants are a GCC extension"
 
21762
+msgstr "constantes de ponto fixo (fixed-point constants) é uma extensão GCC"
 
21763
+
 
21764
+#: expr.c:504
 
21765
+msgid "invalid prefix \"0b\" for floating constant"
 
21766
+msgstr "prefixo inválido \"0b\" para constante flutuante"
 
21767
+
 
21768
+#: expr.c:514
 
21769
+msgid "use of C99 hexadecimal floating constant"
 
21770
+msgstr "uso de constante flutuante hexadecimal de C99"
 
21771
+
 
21772
+#: expr.c:545
 
21773
+#, c-format
 
21774
+msgid "invalid suffix \"%.*s\" on floating constant"
 
21775
+msgstr "sufixo inválido \"%.*s\" na constante flutuante"
 
21776
+
 
21777
+#: expr.c:556 expr.c:616
 
21778
+#, c-format
 
21779
+msgid "traditional C rejects the \"%.*s\" suffix"
 
21780
+msgstr "C tradicional rejeita o sufixo \"%.*s\""
 
21781
+
 
21782
+#: expr.c:564
 
21783
+msgid "suffix for double constant is a GCC extension"
 
21784
+msgstr "sufixo para constante dupla (suffix for double constant) é uma extensão GCC"
 
21785
+
 
21786
+#: expr.c:570
 
21787
+#, c-format
 
21788
+msgid "invalid suffix \"%.*s\" with hexadecimal floating constant"
 
21789
+msgstr "sufixo inválido \"%.*s\" com constante flutuante hexadecimal"
 
21790
+
 
21791
+#: expr.c:581
 
21792
+msgid "decimal float constants are a GCC extension"
 
21793
+msgstr "constantes flutuante decimais (decimal float constants) é uma extensão GCC"
 
21794
+
 
21795
+#: expr.c:599
 
21796
+#, c-format
 
21797
+msgid "invalid suffix \"%.*s\" on integer constant"
 
21798
+msgstr "sufixo inválido \"%.*s\" em constante inteiro"
 
21799
+
 
21800
+#: expr.c:624
 
21801
+msgid "use of C++0x long long integer constant"
 
21802
+msgstr "uso de constante longo longo inteiro de C++0x"
 
21803
+
 
21804
+#: expr.c:625
 
21805
+msgid "use of C99 long long integer constant"
 
21806
+msgstr "uso de constante longo longo inteiro de C99"
 
21807
+
 
21808
+#: expr.c:641
 
21809
+msgid "imaginary constants are a GCC extension"
 
21810
+msgstr "constantes imaginárias (imaginary constants) é uma extensão GCC"
 
21811
+
 
21812
+#: expr.c:644
 
21813
+msgid "binary constants are a GCC extension"
 
21814
+msgstr "constantes binárias (binary constants) é uma extensão GCC"
 
21815
+
 
21816
+#: expr.c:737
 
21817
+msgid "integer constant is too large for its type"
 
21818
+msgstr "constante inteira é muito grande para seu tipo"
 
21819
+
 
21820
+#: expr.c:768
 
21821
+msgid "integer constant is so large that it is unsigned"
 
21822
+msgstr "constante inteira é tão grande que não está assinada"
 
21823
+
 
21824
+#: expr.c:863
 
21825
+msgid "missing ')' after \"defined\""
 
21826
+msgstr "faltando \")\" após \"defined\""
 
21827
+
 
21828
+#: expr.c:870
 
21829
+msgid "operator \"defined\" requires an identifier"
 
21830
+msgstr "operador \"defined\" requer um identificador"
 
21831
+
 
21832
+#: expr.c:878
 
21833
+#, c-format
 
21834
+msgid "(\"%s\" is an alternative token for \"%s\" in C++)"
 
21835
+msgstr "(\"%s\" é um token alternativo para \"%s\" em C++)"
 
21836
+
 
21837
+#: expr.c:888
 
21838
+msgid "this use of \"defined\" may not be portable"
 
21839
+msgstr "esse uso de \"defined\" pode não ser portátil"
 
21840
+
 
21841
+#: expr.c:948
 
21842
+msgid "user-defined literal in preprocessor expression"
 
21843
+msgstr "literal definida pelo usuário em expressão do preprocessador"
 
21844
+
 
21845
+#: expr.c:953
 
21846
+msgid "floating constant in preprocessor expression"
 
21847
+msgstr "constante flutuante em expressão do preprocessador"
 
21848
+
 
21849
+#: expr.c:959
 
21850
+msgid "imaginary number in preprocessor expression"
 
21851
+msgstr "número imaginário em expressão do preprocessador"
 
21852
+
 
21853
+#: expr.c:1007
 
21854
+#, c-format
 
21855
+msgid "\"%s\" is not defined"
 
21856
+msgstr "\"%s\" não está definido"
 
21857
+
 
21858
+#: expr.c:1020
 
21859
+msgid "assertions are a GCC extension"
 
21860
+msgstr "asserções (assertions) é uma extensão GCC"
 
21861
+
 
21862
+#: expr.c:1023
 
21863
+msgid "assertions are a deprecated extension"
 
21864
+msgstr "asserções (assertions) é uma extensão obsoleta"
 
21865
+
 
21866
+#: expr.c:1268
 
21867
+#, c-format
 
21868
+msgid "unbalanced stack in %s"
 
21869
+msgstr "pilha não balanceada em %s"
 
21870
+
 
21871
+#: expr.c:1288
 
21872
+#, c-format
 
21873
+msgid "impossible operator '%u'"
 
21874
+msgstr "operador impossível \"%u\""
 
21875
+
 
21876
+#: expr.c:1389
 
21877
+msgid "missing ')' in expression"
 
21878
+msgstr "faltando \")\" na expressão"
 
21879
+
 
21880
+#: expr.c:1418
 
21881
+msgid "'?' without following ':'"
 
21882
+msgstr "\"?\" sem estar seguido por \":\""
 
21883
+
 
21884
+#: expr.c:1428
 
21885
+msgid "integer overflow in preprocessor expression"
 
21886
+msgstr "estouro de inteiro em expressão do preprocessador"
 
21887
+
 
21888
+#: expr.c:1433
 
21889
+msgid "missing '(' in expression"
 
21890
+msgstr "faltando \"(\" na expressão"
 
21891
+
 
21892
+#: expr.c:1465
 
21893
+#, c-format
 
21894
+msgid "the left operand of \"%s\" changes sign when promoted"
 
21895
+msgstr "o operador à esquerda de \"%s\" altera o sinal quando promovido"
 
21896
+
 
21897
+#: expr.c:1470
 
21898
+#, c-format
 
21899
+msgid "the right operand of \"%s\" changes sign when promoted"
 
21900
+msgstr "o operador à direita de \"%s\" altera o sinal quando promovido"
 
21901
+
 
21902
+#: expr.c:1729
 
21903
+msgid "traditional C rejects the unary plus operator"
 
21904
+msgstr "C tradicional rejeita o operador unário mais"
 
21905
+
 
21906
+#: expr.c:1812
 
21907
+msgid "comma operator in operand of #if"
 
21908
+msgstr "operador vírgula em operando de #if"
 
21909
+
 
21910
+#: expr.c:1948
 
21911
+msgid "division by zero in #if"
 
21912
+msgstr "divisão por zero em #if"
 
21913
+
 
21914
+#: files.c:505
 
21915
+msgid "NULL directory in find_file"
 
21916
+msgstr "diretório NULO em find_file"
 
21917
+
 
21918
+#: files.c:553
 
21919
+msgid "one or more PCH files were found, but they were invalid"
 
21920
+msgstr "um ou mais arquivos PCH foram encontrados, mas são inválidos"
 
21921
+
 
21922
+#: files.c:556
 
21923
+msgid "use -Winvalid-pch for more information"
 
21924
+msgstr "use -Winvalid-pch para mais informações"
 
21925
+
 
21926
+#: files.c:660
 
21927
+#, c-format
 
21928
+msgid "%s is a block device"
 
21929
+msgstr "%s é um dispositivo de bloco"
 
21930
+
 
21931
+#: files.c:677
 
21932
+#, c-format
 
21933
+msgid "%s is too large"
 
21934
+msgstr "%s é muito grande"
 
21935
+
 
21936
+#: files.c:717
 
21937
+#, c-format
 
21938
+msgid "%s is shorter than expected"
 
21939
+msgstr "%s é muito menor do que esperado"
 
21940
+
 
21941
+#: files.c:953
 
21942
+#, c-format
 
21943
+msgid "no include path in which to search for %s"
 
21944
+msgstr "não foi incluído nenhum caminho no qual se possa procurar por %s"
 
21945
+
 
21946
+#: files.c:1381
 
21947
+msgid "Multiple include guards may be useful for:\n"
 
21948
+msgstr "Múltiplos include guards podem ser úteis para:\n"
 
21949
+
 
21950
+#: init.c:524
 
21951
+msgid "cppchar_t must be an unsigned type"
 
21952
+msgstr "cppchar_t deve ser um tipo não assinado"
 
21953
+
 
21954
+#: init.c:528
 
21955
+#, c-format
 
21956
+msgid "preprocessor arithmetic has maximum precision of %lu bits; target requires %lu bits"
 
21957
+msgstr "aritmética do preprocessador possui uma precisão máxima de %lu bits; o alvo requer %lu bits"
 
21958
+
 
21959
+#: init.c:535
 
21960
+msgid "CPP arithmetic must be at least as precise as a target int"
 
21961
+msgstr "aritmética do CPP deve ser pelo menos tão precisa quanto um int alvo"
 
21962
+
 
21963
+#: init.c:538
 
21964
+msgid "target char is less than 8 bits wide"
 
21965
+msgstr "char alvo é menor do que 8 bits"
 
21966
+
 
21967
+#: init.c:542
 
21968
+msgid "target wchar_t is narrower than target char"
 
21969
+msgstr "wchar_t alvo é mais estreito do que o char alvo"
 
21970
+
 
21971
+#: init.c:546
 
21972
+msgid "target int is narrower than target char"
 
21973
+msgstr "int alvo é mais estreito do que o char alvo"
 
21974
+
 
21975
+#: init.c:551
 
21976
+msgid "CPP half-integer narrower than CPP character"
 
21977
+msgstr "meio-inteiro do CPP é mais estreito do que o caractere do CPP"
 
21978
+
 
21979
+#: init.c:555
 
21980
+#, c-format
 
21981
+msgid "CPP on this host cannot handle wide character constants over %lu bits, but the target requires %lu bits"
 
21982
+msgstr "CPP nesta máquina não consegue manipular constantes de wide character acima de %lu bits, mas o alvo requer %lu bits"
 
21983
+
 
21984
+#: lex.c:910
 
21985
+msgid "backslash and newline separated by space"
 
21986
+msgstr "barra invertida e nova linha separadas por espaço"
 
21987
+
 
21988
+#: lex.c:915
 
21989
+msgid "backslash-newline at end of file"
 
21990
+msgstr "barra invertida e nova linha no final do arquivo"
 
21991
+
 
21992
+#: lex.c:931
 
21993
+#, c-format
 
21994
+msgid "trigraph ??%c converted to %c"
 
21995
+msgstr "trígrafo ??%c convertido para %c"
 
21996
+
 
21997
+#: lex.c:939
 
21998
+#, c-format
 
21999
+msgid "trigraph ??%c ignored, use -trigraphs to enable"
 
22000
+msgstr "trígrafo ??%c ignorado, use -trigraphs para habilitá-lo"
 
22001
+
 
22002
+#: lex.c:988
 
22003
+msgid "\"/*\" within comment"
 
22004
+msgstr "\"/*\" dentro de comentário"
 
22005
+
 
22006
+#: lex.c:1046
 
22007
+#, c-format
 
22008
+msgid "%s in preprocessing directive"
 
22009
+msgstr "%s em diretiva de preprocessamento"
 
22010
+
 
22011
+#: lex.c:1055
 
22012
+msgid "null character(s) ignored"
 
22013
+msgstr "um ou mais caracteres nulos ignorados"
 
22014
+
 
22015
+#: lex.c:1092
 
22016
+#, c-format
 
22017
+msgid "`%.*s' is not in NFKC"
 
22018
+msgstr "\"%.*s\" não está em NFKC"
 
22019
+
 
22020
+#: lex.c:1095
 
22021
+#, c-format
 
22022
+msgid "`%.*s' is not in NFC"
 
22023
+msgstr "\"%.*s\" não está em NFC"
 
22024
+
 
22025
+#: lex.c:1164 lex.c:1241
 
22026
+#, c-format
 
22027
+msgid "attempt to use poisoned \"%s\""
 
22028
+msgstr "tentativa de usar \"%s\" envenenado"
 
22029
+
 
22030
+#: lex.c:1172 lex.c:1249
 
22031
+msgid "__VA_ARGS__ can only appear in the expansion of a C99 variadic macro"
 
22032
+msgstr "__VA_ARGS__ pode aparecer apenas na expansão de uma macro variádica C99"
 
22033
+
 
22034
+#: lex.c:1178 lex.c:1255
 
22035
+#, c-format
 
22036
+msgid "identifier \"%s\" is a special operator name in C++"
 
22037
+msgstr "identificador \"%s\" é o nome de um operador especial em C++"
 
22038
+
 
22039
+#: lex.c:1399
 
22040
+msgid "raw string delimiter longer than 16 characters"
 
22041
+msgstr "delimitador de string não tratada (raw) maior do que 16 caracteres"
 
22042
+
 
22043
+#: lex.c:1402
 
22044
+#, c-format
 
22045
+msgid "invalid character '%c' in raw string delimiter"
 
22046
+msgstr "caractere inválido \"%c\" em delimitador de string não tratada (raw)"
 
22047
+
 
22048
+#: lex.c:1525 lex.c:1547
 
22049
+msgid "unterminated raw string"
 
22050
+msgstr "string não tratada (raw) não terminada"
 
22051
+
 
22052
+#: lex.c:1573 lex.c:1706
 
22053
+msgid "invalid suffix on literal; C++11 requires a space between literal and identifier"
 
22054
+msgstr "sufixo inválido em literal; C++11 requer um espaço entre literal e identificador"
 
22055
+
 
22056
+#: lex.c:1684
 
22057
+msgid "null character(s) preserved in literal"
 
22058
+msgstr "um ou mais caracteres nulos preservados em literal"
 
22059
+
 
22060
+#: lex.c:1687
 
22061
+#, c-format
 
22062
+msgid "missing terminating %c character"
 
22063
+msgstr "faltando o caractere de terminação %c"
 
22064
+
 
22065
+#: lex.c:2245
 
22066
+msgid "C++ style comments are not allowed in ISO C90"
 
22067
+msgstr "comentários no estilo C++ não são permitidos em ISO C90"
 
22068
+
 
22069
+#: lex.c:2247
 
22070
+msgid "(this will be reported only once per input file)"
 
22071
+msgstr "(isso será relatado apenas uma vez por arquivo de entrada)"
 
22072
+
 
22073
+#: lex.c:2252
 
22074
+msgid "multi-line comment"
 
22075
+msgstr "comentário multilinha"
 
22076
+
 
22077
+#: lex.c:2583
 
22078
+#, c-format
 
22079
+msgid "unspellable token %s"
 
22080
+msgstr "token %s impronunciável"
 
22081
+
 
22082
+#: macro.c:191
 
22083
+#, c-format
 
22084
+msgid "macro \"%s\" is not used"
 
22085
+msgstr "macro \"%s\" não é usada"
 
22086
+
 
22087
+#: macro.c:229 macro.c:426
 
22088
+#, c-format
 
22089
+msgid "invalid built-in macro \"%s\""
 
22090
+msgstr "macro interna inválida \"%s\""
 
22091
+
 
22092
+#: macro.c:263
 
22093
+msgid "could not determine file timestamp"
 
22094
+msgstr "não foi possível determinar o arquivo de marca de tempo"
 
22095
+
 
22096
+#: macro.c:361
 
22097
+msgid "could not determine date and time"
 
22098
+msgstr "não foi possível determinar a data e a hora"
 
22099
+
 
22100
+#: macro.c:377
 
22101
+msgid "__COUNTER__ expanded inside directive with -fdirectives-only"
 
22102
+msgstr "__COUNTER__ expandido dentro diretiva com -fdirectives-only"
 
22103
+
 
22104
+#: macro.c:535
 
22105
+msgid "invalid string literal, ignoring final '\\'"
 
22106
+msgstr "literal de string inválida, ignorando final \"\\\""
 
22107
+
 
22108
+#: macro.c:597
 
22109
+#, c-format
 
22110
+msgid "pasting \"%s\" and \"%s\" does not give a valid preprocessing token"
 
22111
+msgstr "colar \"%s\" em \"%s\" não resulta em nenhum token de preprocessamento válido"
 
22112
+
 
22113
+#: macro.c:719
 
22114
+msgid "ISO C99 requires rest arguments to be used"
 
22115
+msgstr "ISO C99 requer que argumentos restantes sejam usados"
 
22116
+
 
22117
+#: macro.c:724
 
22118
+#, c-format
 
22119
+msgid "macro \"%s\" requires %u arguments, but only %u given"
 
22120
+msgstr "macro \"%s\" requer %u argumentos, mas apenas %u foram fornecidos"
 
22121
+
 
22122
+#: macro.c:729
 
22123
+#, c-format
 
22124
+msgid "macro \"%s\" passed %u arguments, but takes just %u"
 
22125
+msgstr "macro \"%s\" passou %u argumentos, mas usa apenas %u"
 
22126
+
 
22127
+#: macro.c:923 traditional.c:680
 
22128
+#, c-format
 
22129
+msgid "unterminated argument list invoking macro \"%s\""
 
22130
+msgstr "lista de argumentos interminável chamando macro \"%s\""
 
22131
+
 
22132
+#: macro.c:1074
 
22133
+#, c-format
 
22134
+msgid "function-like macro \"%s\" must be used with arguments in traditional C"
 
22135
+msgstr "macro \"%s\" do tipo função deve ser usada com argumento em C tradicional"
 
22136
+
 
22137
+# http://gcc.gnu.org/bugzilla/show_bug.cgi?id=33305
 
22138
+#: macro.c:1746
 
22139
+#, c-format
 
22140
+msgid "invoking macro %s argument %d: empty macro arguments are undefined in ISO C90 and ISO C++98"
 
22141
+msgstr "chamando macro %s argumento %d: argumentos de macro vazios estão indefinidos em ISO C90 e ISO C++98"
 
22142
+
 
22143
+#: macro.c:2708
 
22144
+#, c-format
 
22145
+msgid "duplicate macro parameter \"%s\""
 
22146
+msgstr "parâmetro de macro \"%s\" duplicado"
 
22147
+
 
22148
+#: macro.c:2754
 
22149
+#, c-format
 
22150
+msgid "\"%s\" may not appear in macro parameter list"
 
22151
+msgstr "\"%s\" não pode aparecer na lista de parâmetros de macro"
 
22152
+
 
22153
+#: macro.c:2762
 
22154
+msgid "macro parameters must be comma-separated"
 
22155
+msgstr "parâmetros de macro devem ser separados por vírgula"
 
22156
+
 
22157
+#: macro.c:2779
 
22158
+msgid "parameter name missing"
 
22159
+msgstr "faltando nome de parâmetro"
 
22160
+
 
22161
+#: macro.c:2797
 
22162
+msgid "anonymous variadic macros were introduced in C99"
 
22163
+msgstr "macros variádicas anônimas foram introduzidas em C99"
 
22164
+
 
22165
+#: macro.c:2802
 
22166
+msgid "ISO C does not permit named variadic macros"
 
22167
+msgstr "ISO C não permite macros variádicas nomeadas"
 
22168
+
 
22169
+#: macro.c:2811
 
22170
+msgid "missing ')' in macro parameter list"
 
22171
+msgstr "faltando \")\" na lista de parâmetros de macro"
 
22172
+
 
22173
+#: macro.c:2860
 
22174
+msgid "'##' cannot appear at either end of a macro expansion"
 
22175
+msgstr "\"##\" não pode aparecer no final da expansão de macro"
 
22176
+
 
22177
+#: macro.c:2895
 
22178
+msgid "ISO C99 requires whitespace after the macro name"
 
22179
+msgstr "ISO C99 requer espaço em branco após o nome de macro"
 
22180
+
 
22181
+#: macro.c:2919
 
22182
+msgid "missing whitespace after the macro name"
 
22183
+msgstr "faltando espaço em branco após o nome de macro"
 
22184
+
 
22185
+#: macro.c:2953
 
22186
+msgid "'#' is not followed by a macro parameter"
 
22187
+msgstr "\"#\" não está seguido por um parâmetro de macro"
 
22188
+
 
22189
+#: macro.c:3111
 
22190
+#, c-format
 
22191
+msgid "\"%s\" redefined"
 
22192
+msgstr "\"%s\" re-definido"
 
22193
+
 
22194
+#: macro.c:3117
 
22195
+msgid "this is the location of the previous definition"
 
22196
+msgstr "essa é a localização da definição anterior"
 
22197
+
 
22198
+#: macro.c:3178
 
22199
+#, c-format
 
22200
+msgid "macro argument \"%s\" would be stringified in traditional C"
 
22201
+msgstr "argumento de macro \"%s\" estaria em uma string no C tradicional"
 
22202
+
 
22203
+#: macro.c:3205
 
22204
+#, c-format
 
22205
+msgid "invalid hash type %d in cpp_macro_definition"
 
22206
+msgstr "tipo de hash inválido %d em cpp_macro_definition"
 
22207
+
 
22208
+#: pch.c:87 pch.c:345 pch.c:359 pch.c:377 pch.c:383 pch.c:392 pch.c:399
 
22209
+msgid "while writing precompiled header"
 
22210
+msgstr "enquanto realizava escrita de header pré-compilado"
 
22211
+
 
22212
+#: pch.c:619
 
22213
+#, c-format
 
22214
+msgid "%s: not used because `%.*s' is poisoned"
 
22215
+msgstr "%s: não usado porque \"%.*s\" está envenenado"
 
22216
+
 
22217
+#: pch.c:641
 
22218
+#, c-format
 
22219
+msgid "%s: not used because `%.*s' not defined"
 
22220
+msgstr "%s: não usado porque \"%.*s\" não está definido"
 
22221
+
 
22222
+#: pch.c:653
 
22223
+#, c-format
 
22224
+msgid "%s: not used because `%.*s' defined as `%s' not `%.*s'"
 
22225
+msgstr "%s: não usado porque \"%.*s\" está definido como \"%s\", e não \"%.*s\""
 
22226
+
 
22227
+#: pch.c:694
 
22228
+#, c-format
 
22229
+msgid "%s: not used because `%s' is defined"
 
22230
+msgstr "%s: não usado porque \"%s\" está definido"
 
22231
+
 
22232
+#: pch.c:714
 
22233
+#, c-format
 
22234
+msgid "%s: not used because `__COUNTER__' is invalid"
 
22235
+msgstr "%s: não usado porque \"__COUNTER__\" é inválido"
 
22236
+
 
22237
+#: pch.c:723 pch.c:898
 
22238
+msgid "while reading precompiled header"
 
22239
+msgstr "enquanto realizava leitura de header pré-compilado"
 
22240
+
 
22241
+#: traditional.c:750
 
22242
+#, c-format
 
22243
+msgid "detected recursion whilst expanding macro \"%s\""
 
22244
+msgstr "detectada recursão enquanto expandia macro \"%s\""
 
22245
+
 
22246
+#: traditional.c:968
 
22247
+msgid "syntax error in macro parameter list"
 
22248
+msgstr "erro de sintaxe na lista de parâmetros de macro"
18916
22249
Index: libcpp/po/ChangeLog
18917
22250
===================================================================
18918
22251
--- a/src/libcpp/po/ChangeLog   (.../tags/gcc_4_8_2_release)
18919
22252
+++ b/src/libcpp/po/ChangeLog   (.../branches/gcc-4_8-branch)
18920
 
@@ -1,3 +1,7 @@
 
22253
@@ -1,3 +1,11 @@
 
22254
+2013-12-18  Joseph Myers  <joseph@codesourcery.com>
 
22255
+
 
22256
+       * pt_BR.po: New.
 
22257
+
18921
22258
+2013-11-01  Joseph Myers  <joseph@codesourcery.com>
18922
22259
+
18923
22260
+       * tr.po: Update.