This is version 2 of the ROP support patch, addressing comments by
Will Schmidt and Segher Boessenkool. I've attempted to implement
all of your excellent suggestions; otherwise the series is unchanged.
I decided to repost the whole series rather than just the patches
needing further approval,
2021-05-13 Bill Schmidt
gcc/
* config/rs6000/rs6000-c.c (rs6000_target_modify_macros): Define
__ROP_PROTECT__ if -mrop-protect is selected.
---
gcc/config/rs6000/rs6000-c.c | 3 +++
1 file changed, 3 insertions(+)
diff --git a/gcc/config/rs6000/rs6000-c.c
Hi!
Long ago we were forced to make some small ABI breaks to correct errors
in the implementation, and we added warning messages for the changes
from GCC 4.9 to GCC 5. Enough time has passed that these are now just
irritants, so let's remove them. Also clean up associated macros using
On 5/18/21 11:30 AM, Segher Boessenkool wrote:
On Tue, May 18, 2021 at 09:09:07AM -0500, Bill Schmidt wrote:
Long ago we were forced to make some small ABI breaks to correct errors
in the implementation, and we added warning messages for the changes
from GCC 4.9 to GCC 5. Enough time has
Series pushed with recommended changes. Thank you!
Bill
On 5/14/21 10:55 AM, Segher Boessenkool wrote:
On Thu, May 13, 2021 at 10:34:54PM -0500, Bill Schmidt via Gcc-patches wrote:
+mprivileged
+Target Var(rs6000_privileged) Init(0)
+Enable generation of instructions that require privileged
Hi! I'd like to ping this series. This is a big change, so I'd like to
get it committed fairly early in stage 1. I know you have a lot stacked
up, though.
Thanks!
Bill
On 4/27/21 10:32 AM, Bill Schmidt wrote:
The design of the target-specific built-in function support in the
Power back
Hi! I'd like to ping this series. It has slightly higher priority from
my perspective, since I'd like this to be backported in time for GCC 11.2.
Thanks!
Bill
On 4/25/21 8:50 PM, Bill Schmidt via Gcc-patches wrote:
Add POWER10 support for hashst[p] and hashchk[p] operations. When
the -mrop
Hi! I'd like to ping this specific patch from the series, which is the
only one remaining that affects common code. I confess that I don't
know whom to ask for a review for gengtype; I didn't get any good ideas
from MAINTAINERS. If you know of a good reviewer candidate, please CC them.
In
On 5/20/21 4:57 PM, Segher Boessenkool wrote:
Is there some (semi-)automatic way to compare the results of the old
and new systems?
Yes...very "semi". There's a patch in the series that updates the
information printed from -mdebug=builtin. I use this to print the
builtins generated by the
On 5/20/21 5:46 PM, Segher Boessenkool wrote:
On Tue, Apr 27, 2021 at 10:32:39AM -0500, Bill Schmidt via Gcc-patches wrote:
This patch adds a tiny subset of the built-in and overload descriptions.
* config/rs6000/rs6000-builtin-new.def: New.
You'll have to rename this to not have
On 5/20/21 6:03 PM, Segher Boessenkool wrote:
Hi!
On Tue, Apr 27, 2021 at 10:32:40AM -0500, Bill Schmidt via Gcc-patches wrote:
* config/rs6000/rs6000-gen-builtins.c (bif_file): New filescope
variable.
What makes it interesting that this var has file scope? Did you mean
On 5/14/21 1:44 PM, Segher Boessenkool wrote:
Please make this an unspec_volatile?
Oops! Sorry for missing that the first time.
Thanks for the review!!
Bill
On 5/21/21 1:51 PM, Segher Boessenkool wrote:
Hi!
On Tue, Apr 27, 2021 at 10:32:41AM -0500, Bill Schmidt via Gcc-patches wrote:
+/* Used as a sentinel for range constraints on integer fields. No field can
+ be 32 bits wide, so this is a safe sentinel value. */
+#define MININT INT32_MIN
On 6/2/21 7:46 PM, Xionghu Luo wrote:
Hi,
On 2021/6/3 06:20, Segher Boessenkool wrote:
On Wed, Jun 02, 2021 at 03:19:32AM -0500, Xionghu Luo wrote:
On P8LE, extra rot64+rot64 load or store instructions are generated
in float128 to vector __int128 conversion.
This patch teaches pass swaps to
On 6/1/21 7:44 PM, Segher Boessenkool wrote:
It would be nice if we had a selector for when we can use -mrop-protect,
instead of assuming it is only for ELFv2.
Agreed -- I'll take a note and try to get to this sometime.
On 6/3/21 3:19 PM, Segher Boessenkool wrote:
On Thu, Jun 03, 2021 at 08:09:36AM -0500, Bill Schmidt wrote:
Note also that swap optimization can handle more general cases than
simplify-rtx.
Do you have examples? That should be fixed (unless it is something
Power-specific?)
It is
On 5/20/21 5:24 PM, Segher Boessenkool wrote:
On Tue, May 11, 2021 at 11:01:22AM -0500, Bill Schmidt wrote:
Hi! I'd like to ping this specific patch from the series, which is the
only one remaining that affects common code. I confess that I don't
know whom to ask for a review for gengtype; I
On 5/21/21 6:43 PM, Segher Boessenkool wrote:
Yes, wrappers is a no-go. But you could just have added the features
you need to the generic code? Was there a technical reason not to do
that? It sounds useful in many places, not just here.
I agree it would be nice if all the gen* tools had
Hi! PR100750 reports a failure on my part to require the ELFv2 ABI for
one of the ROP tests. This fixes that.
Tested on powerpc64-linux-gnu, committed as obvious.
Thanks!
Bill
PR100750: Require ELFv2 ABI for ROP test
2021-06-01 Bill Schmidt
gcc/testsuite/
PR testsuite/100750
On 7/3/21 10:56 AM, Segher Boessenkool wrote:
On Fri, Jul 02, 2021 at 01:32:45PM -0500, Peter Bergner wrote:
On 7/1/21 2:48 PM, Peter Bergner wrote:
On 7/1/21 1:01 PM, Segher Boessenkool wrote:
The patch is okay for trunk.
Below is the updated patch which is bootstrapping now. I'll commit
Hi Peter,
On 7/1/21 2:48 PM, Peter Bergner via Gcc-patches wrote:
gcc/
* config/rs6000/rs6000-builtin.def (BU_MMA_PAIR_LD, BU_MMA_PAIR_ST):
New macros.
(__builtin_vsx_lxvp, __builtin_vsx_stxvp): New built-ins.
* config/rs6000/rs6000-call.c
Hi Mike,
On 7/7/21 3:04 PM, Michael Meissner wrote:
[PATCH] PR 100167: Fix vector long long multiply/divide tests on power10.
This patch updates the vector long long multiply and divide tests to
supply the correct code information if power10 code generation is used.
2021-07-07 Michael
Hi Paul,
Please resubmit this when you resubmit 3/4, in case any adjustments are
needed.
Thanks!
Bill
On 6/29/21 1:08 PM, Paul A. Clarke via Gcc-patches wrote:
Copy the tests for _mm_blend_pd, _mm_blendv_pd, _mm_blend_ps,
_mm_blendv_ps from gcc/testsuite/gcc.target/i386.
2021-06-29 Paul
Hi Paul,
On 7/1/21 9:11 PM, Paul A. Clarke via Gcc-patches wrote:
Add the tests for _mm_ceil_pd, _mm_ceil_ps, _mm_ceil_sd, _mm_ceil_ss.
Copy a test for _mm_ceil_pd and _mm_ceil_ps from
gcc/testsuite/gcc.target/i386.
Define __VSX_SSE2__ to pick up some union definitons in
typo
Hi Paul,
On 6/29/21 1:08 PM, Paul A. Clarke via Gcc-patches wrote:
2021-06-29 Paul A. Clarke
gcc/ChangeLog:
* config/rs6000/smmintrin.h (_mm_testz_si128, _mm_testc_si128,
_mm_testnzc_si128, _mm_test_all_ones, _mm_test_all_zeros,
_mm_test_mix_ones_zeros): New.
---
Hi Paul,
On 6/29/21 1:08 PM, Paul A. Clarke via Gcc-patches wrote:
_mm_blend_epi16 and _mm_blendv_epi8 were added earlier.
Add these four to complete the set.
2021-06-29 Paul A. Clarke
gcc/ChangeLog:
* config/rs6000/smmintrin.h (_mm_blend_pd, _mm_blendv_pd,
_mm_blend_ps,
Hi Mike,
LGTM. I can't approve, but recommend approval.
Thanks,
Bill
On 7/7/21 3:08 PM, Michael Meissner wrote:
[PATCH] PR 100168: Fix call test on power10.
Fix a test that was checking for 64-bit TOC calls, to also allow for
PC-relative calls.
I have verified that this test passes when
On 7/11/21 11:17 AM, Bill Schmidt wrote:
Hi Paul,
On 6/29/21 1:08 PM, Paul A. Clarke via Gcc-patches wrote:
_mm_blend_epi16 and _mm_blendv_epi8 were added earlier.
Add these four to complete the set.
2021-06-29 Paul A. Clarke
gcc/ChangeLog:
* config/rs6000/smmintrin.h (_mm_blend_pd,
Hi Paul,
On 7/6/21 5:50 PM, Paul A. Clarke via Gcc-patches wrote:
Add the tests for _mm_floor_pd, _mm_floor_ps, _mm_floor_sd, _mm_floor_ss.
These are modelled after (and depend upon parts of) the tests for
_mm_ceil intrinsics, recently posted.
Copy a test for _mm_floor_sd from
Hi Paul,
LGTM. I can't approve, but recommend approval as is.
Thanks,
Bill
On 6/29/21 1:08 PM, Paul A. Clarke via Gcc-patches wrote:
Copy the test for _mm_testz_si128, _mm_testc_si128,
_mm_testnzc_si128, _mm_test_all_ones, _mm_test_all_zeros,
_mm_test_mix_ones_zeros from
Hi Paul,
On 7/1/21 9:11 PM, Paul A. Clarke via Gcc-patches wrote:
2021-07-01 Paul A. Clarke
gcc/ChangeLog:
* config/rs6000/smmintrin.h (_mm_ceil_pd, _mm_ceil_ps,
_mm_ceil_sd, _mm_ceil_ss): New.
---
gcc/config/rs6000/smmintrin.h | 28
1 file
Hi Paul,
On 7/6/21 5:50 PM, Paul A. Clarke via Gcc-patches wrote:
2021-07-06 Paul A. Clarke
gcc/ChangeLog:
* config/rs6000/smmintrin.h (_mm_floor_pd, _mm_floor_ps,
_mm_floor_sd, _mm_floor_ss): New.
---
gcc/config/rs6000/smmintrin.h | 28
1
Hi Mike,
ENOPATCH
Thanks,
Bill :-)
On 7/7/21 3:06 PM, Michael Meissner wrote:
[PATCH] PR 100170: Fix eq/ne tests on power10.
This patch updates eq/ne tests in the testsuite to adjust the test if
power10 code generation is used.
I have verified that these tests run on a power10 system using
Hi Mike,
On 7/7/21 3:03 PM, Michael Meissner wrote:
[PATCH] Deal with prefixed loads/stores in tests, PR testsuite/100166
This patch updates the various tests in the testsuite to treat plxv
and pstxv as being vector loads/stores. This shows up if you run the
testsuite with a compiler
On 7/12/21 12:16 PM, Michael Meissner wrote:
On Sun, Jul 11, 2021 at 02:55:04PM -0500, Bill Schmidt wrote:
Hi Mike,
On 7/7/21 3:04 PM, Michael Meissner wrote:
[PATCH] PR 100167: Fix vector long long multiply/divide tests on power10.
This patch updates the vector long long multiply and
Hi Mike,
On 7/7/21 2:59 PM, Michael Meissner wrote:
[PATCH] Change rs6000_const_f32_to_i32 return type.
The function rs6000_const_f32_to_i32 called REAL_VALUE_TO_TARGET_SINGLE
with a long long type and returns it. This patch changes the type to long
which is the proper type for
On 7/12/21 12:11 PM, Michael Meissner wrote:
On Mon, Jul 12, 2021 at 10:49:26AM -0500, Bill Schmidt wrote:
Hi Mike,
On 7/7/21 3:00 PM, Michael Meissner wrote:
[PATCH] Fix vec-splati-runnable.c test.
I noticed that the vec-splati-runnable.c did not have an abort after one
of the tests. If
Hi Mike,
On 7/7/21 3:00 PM, Michael Meissner wrote:
[PATCH] Fix vec-splati-runnable.c test.
I noticed that the vec-splati-runnable.c did not have an abort after one
of the tests. If the test was run with optimization, the optimizer could
delete some of the tests and throw off the count.
On 7/12/21 12:47 PM, Bill Schmidt via Gcc-patches wrote:
On 7/12/21 12:16 PM, Michael Meissner wrote:
On Sun, Jul 11, 2021 at 02:55:04PM -0500, Bill Schmidt wrote:
Hi Mike,
On 7/7/21 3:04 PM, Michael Meissner wrote:
[PATCH] PR 100167: Fix vector long long multiply/divide tests on
power10
On 7/6/21 2:29 PM, Peter Bergner wrote:
On 7/4/21 11:32 AM, Bill Schmidt wrote
On 7/1/21 2:48 PM, Peter Bergner via Gcc-patches wrote:
+ if (d[1].icode != CODE_FOR_nothing)
+ {
+ op[nopnds++] = void_type_node;
+ icode = d[1].icode;
+ }
This hunk
Hi Paul,
On 6/8/21 2:11 PM, Paul A. Clarke via Gcc-patches wrote:
Add a naive implementation of the subject x86 intrinsic to
ease porting.
"subject" won't be part of eventual commit, so please specify in commit
blurb.
2021-06-08 Paul A. Clarke
gcc/ChangeLog:
*
Hi Paul,
On 6/8/21 2:11 PM, Paul A. Clarke via Gcc-patches wrote:
Copy the test for _mm_minpos_epu16 from
gcc/testsuite/gcc.target/i386/sse4_1-phminposuw.c, with
a few adjustments:
- Adjust the dejagnu directives for powerpc platform.
- Make the data not be monotonically increasing,
such
Add POWER10 support for hashst[p] and hashchk[p] operations. When
the -mrop-protect option is selected, any function that loads the link
register from memory before returning must have protection in the
prologue and epilogue to ensure the link register save location has
not been compromised. If
2021-03-25 Bill Schmidt
gcc/
* config/rs6000/rs6000-c.c (rs6000_target_modify_macros): Define
__ROP_PROTECT__ if -mrop-protect is selected.
---
gcc/config/rs6000/rs6000-c.c | 3 +++
1 file changed, 3 insertions(+)
diff --git a/gcc/config/rs6000/rs6000-c.c
Insert the hashst and hashchk instructions when -mrop-protect has been
selected. The encrypted save slot for ROP mitigation is placed
between the parameter save area and the alloca space (if any;
otherwise the local variable space).
Note that ROP-mitigation instructions are currently only
2021-03-25 Bill Schmidt
gcc/testsuite/
* gcc.target/powerpc/rop-1.c: New.
* gcc.target/powerpc/rop-2.c: New.
* gcc.target/powerpc/rop-3.c: New.
* gcc.target/powerpc/rop-4.c: New.
* gcc.target/powerpc/rop-5.c: New.
---
2021-03-25 Bill Schmidt
gcc/
* config/rs6000/rs6000.c (rs6000_option_override_internal):
Disable shrink wrap when inserting ROP-protect instructions.
* config/rs6000/rs6000.opt (mrop-protect): New option.
(mprivileged): Likewise.
* doc/invoke.texi:
On 4/26/21 11:01 AM, will schmidt wrote:
On Sun, 2021-04-25 at 20:50 -0500, Bill Schmidt via Gcc-patches wrote:
Add POWER10 support for hashst[p] and hashchk[p] operations. When
the -mrop-protect option is selected, any function that loads the
link
register from memory before returning must
On 4/26/21 11:04 AM, will schmidt wrote:
On Sun, 2021-04-25 at 20:50 -0500, Bill Schmidt via Gcc-patches wrote:
2021-03-25 Bill Schmidt
gcc/testsuite/
* gcc.target/powerpc/rop-1.c: New.
* gcc.target/powerpc/rop-2.c: New.
* gcc.target/powerpc/rop-3.c: New
2021-03-03 Bill Schmidt
gcc/
* config/rs6000/rs6000-gen-builtins.c (bif_file): New filescope
variable.
(ovld_file): Likewise.
(header_file): Likewise.
(init_file): Likewise.
(defines_file): Likewise.
(pgm_path): Likewise.
2021-03-24 Bill Schmidt
gcc/
* config/rs6000/rs6000-call.c (rs6000_init_builtins): Remove
TARGET_EXTRA_BUILTINS guard.
---
gcc/config/rs6000/rs6000-call.c | 51 -
1 file changed, 24 insertions(+), 27 deletions(-)
diff --git
2021-03-05 Bill Schmidt
gcc/
* config/rs6000/rs6000-call.c (rs6000_invalid_new_builtin):
Implement.
(rs6000_expand_ldst_mask): Likewise.
(rs6000_init_builtins): Initialize altivec_builtin_mask_for_load.
---
gcc/config/rs6000/rs6000-call.c | 101
2021-03-24 Bill Schmidt
gcc/testsuite/
* gcc.target/powerpc/bfp/scalar-extract-exp-2.c: Adjust.
* gcc.target/powerpc/bfp/scalar-extract-sig-2.c: Adjust.
* gcc.target/powerpc/bfp/scalar-insert-exp-2.c: Adjust.
* gcc.target/powerpc/bfp/scalar-insert-exp-5.c:
2021-04-01 Bill Schmidt
gcc/
* config/rs6000/rs6000-call.c (rs6000_debug_type): New function.
(def_builtin): Change debug formatting for easier parsing and
include more information.
(rs6000_init_builtins): Add dump of autogenerated builtins.
2021-03-05 Bill Schmidt
gcc/
* config/rs6000/rs6000.c (rs6000_builtin_reciprocal): Use
rs6000_builtin_decls_x when appropriate.
(add_condition_to_bb): Likewise.
(rs6000_atomic_assign_expand_fenv): Likewise.
---
gcc/config/rs6000/rs6000.c | 19
2021-03-04 Bill Schmidt
gcc/
* config/rs6000/darwin.h (SUBTARGET_INIT_BUILTINS): Use the new
decl when new_builtins_are_live.
* config/rs6000/rs6000-builtin-new.def (__builtin_cfstring): New
built-in.
---
gcc/config/rs6000/darwin.h | 8 ++--
2021-03-05 Bill Schmidt
gcc/
* config/rs6000/rs6000-call.c (rs6000_new_builtin_decl): New
function.
(rs6000_builtin_decl): Call it.
---
gcc/config/rs6000/rs6000-call.c | 20
1 file changed, 20 insertions(+)
diff --git
2021-03-05 Bill Schmidt
gcc/
* config/rs6000/rs6000-call.c (elemrev_icode): Implement.
(ldv_expand_builtin): Likewise.
(lxvrse_expand_builtin): Likewise.
(lxvrze_expand_builtin): Likewise.
(stv_expand_builtin): Likewise.
---
After this patch set was developed, a small change was made to overload
handling for VEC_INSERT. Reflecting that into the new support here.
2021-04-27 Bill Schmidt
gcc/
* config/rs6000/rs6000-c.c
(altivec_resolve_new_overloaded_builtin): Change P8-vector test to
2021-03-05 Bill Schmidt
gcc/
* config/rs6000/rs6000.c (rs6000-builtins.h): New include.
(rs6000_new_builtin_vectorized_function): New function.
(rs6000_new_builtin_md_vectorized_function): Likewise.
(rs6000_builtin_vectorized_function): Call
2021-04-02 Bill Schmidt
gcc/
* config/rs6000/rs6000-call.c (rs6000_expand_new_builtin): New
forward decl.
(rs6000_invalid_new_builtin): New stub function.
(rs6000_expand_builtin): Call rs6000_expand_new_builtin.
(rs6000_expand_ldst_mask): New stub
2021-03-05 Bill Schmidt
gcc/
* config/rs6000/rs6000-call.c (new_cpu_expand_builtin):
Implement.
---
gcc/config/rs6000/rs6000-call.c | 100
1 file changed, 100 insertions(+)
diff --git a/gcc/config/rs6000/rs6000-call.c
Although this patch looks quite large, the changes are fairly minimal.
Most of it is duplicating the large function that does the overload
resolution using the automatically generated data structures instead of
the old hand-generated ones. This doesn't make the patch terribly easy to
review,
2021-03-24 Bill Schmidt
gcc/
* config/rs6000/rs6000-call.c (new_htm_spr_num): New function.
(new_htm_expand_builtin): Implement.
(rs6000_expand_new_builtin): Handle 32-bit and endian cases.
---
gcc/config/rs6000/rs6000-call.c | 202
1
2021-03-25 Bill Schmidt
gcc/
* config/rs6000/rs6000-call.c (new_mma_expand_builtin):
Implement.
---
gcc/config/rs6000/rs6000-call.c | 92 +
1 file changed, 92 insertions(+)
diff --git a/gcc/config/rs6000/rs6000-call.c
This is another patch that looks bigger than it really is. Because we
have a new namespace for the builtins, allowing us to have both the old
and new builtin infrastructure supported at once, we need versions of
these functions that use the new builtin namespace. Otherwise the code is
unchanged.
2021-03-03 Bill Schmidt
gcc/
* config/rs6000/rs6000-gen-builtins.c (typemap): New struct.
(TYPE_MAP_SIZE): New defined constant.
(type_map): New initialized filescope variable.
(map_token_to_type_node): New function.
(write_type_node): Likewise.
On 4/27/21 10:32 AM, Bill Schmidt wrote:
The design of the target-specific built-in function support in the
Power back end has not stood the test of time. The machinery is
grossly inefficient, confusing, and arcane; and adding new built-in
functions is inefficient and error-prone. This patch
On 4/27/21 10:32 AM, Bill Schmidt wrote:
The design of the target-specific built-in function support in the
Power back end has not stood the test of time. The machinery is
grossly inefficient, confusing, and arcane; and adding new built-in
functions is inefficient and error-prone. This patch
On 4/27/21 10:32 AM, Bill Schmidt wrote:
The design of the target-specific built-in function support in the
Power back end has not stood the test of time. The machinery is
grossly inefficient, confusing, and arcane; and adding new built-in
functions is inefficient and error-prone. This patch
It seems quite strange for these to be "vector long" for 64-bit and
"vector long long" for 32-bit, when "vector long long" will do for both.
2021-03-04 Bill Schmidt
gcc/
* config/rs6000/rs6000-call.c (rs6000_init_builtins): Change
initialization of V2DI_type_node and
2021-04-01 Bill Schmidt
gcc/
* config/rs6000/altivec.h: Delete a number of #defines that are
now superfluous; include rs6000-vecdefines.h; include some
synonyms.
---
gcc/config/rs6000/altivec.h | 516 +++-
1 file changed, 41
2021-03-05 Bill Schmidt
gcc/
* config/rs6000/rs6000-gen-builtins.c (write_init_file):
Initialize new_builtins_are_live to 1.
---
gcc/config/rs6000/rs6000-gen-builtins.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/gcc/config/rs6000/rs6000-gen-builtins.c
On 4/27/21 10:57 AM, Jakub Jelinek wrote:
On Tue, Apr 27, 2021 at 10:32:36AM -0500, Bill Schmidt wrote:
2021-03-03 Bill Schmidt
gcc/
* Makefile.in (OUT_FILE_DEPS): New variable.
(out_object_file): Depend on OUT_FILE_DEPS.
Why?
E.g. gcc/config/i386/t-i386 contains:
i386.o:
On 4/27/21 11:47 AM, Jakub Jelinek wrote:
On Tue, Apr 27, 2021 at 11:14:00AM -0500, Bill Schmidt wrote:
On 4/27/21 10:57 AM, Jakub Jelinek wrote:
On Tue, Apr 27, 2021 at 10:32:36AM -0500, Bill Schmidt wrote:
2021-03-03 Bill Schmidt
gcc/
* Makefile.in (OUT_FILE_DEPS): New variable.
On 4/23/21 6:58 PM, Segher Boessenkool wrote:
On Fri, Apr 23, 2021 at 06:24:07PM -0400, Michael Meissner wrote:
On Thu, Apr 22, 2021 at 05:56:32PM -0500, Segher Boessenkool wrote:
As Will says, it looks like the ELFv2 version has the same bug. Please
fix that the same way.
Yes it has the
Currently gengtype supports scanning target-specific files for GC roots,
but those files must exist in the source tree. This patch extends the
support to include header files generated into the build directory. It
also allows targets to specify build dependencies for s-gtype to ensure
the built
The design of the target-specific built-in function support in the
Power back end has not stood the test of time. The machinery is
grossly inefficient, confusing, and arcane; and adding new built-in
functions is inefficient and error-prone. This patch set introduces a
replacement.
Because of
This patch adds a tiny subset of the built-in and overload descriptions.
2021-04-02 Bill Schmidt
gcc/
* config/rs6000/rs6000-builtin-new.def: New.
* config/rs6000/rs6000-overload.def: New.
---
gcc/config/rs6000/rs6000-builtin-new.def | 199 +++
2021-03-03 Bill Schmidt
gcc/
* Makefile.in (OUT_FILE_DEPS): New variable.
(out_object_file): Depend on OUT_FILE_DEPS.
---
gcc/Makefile.in | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/gcc/Makefile.in b/gcc/Makefile.in
index 8a5fb3fd99c..2fd94fc7dba
2021-04-02 Bill Schmidt
gcc/
* config/rs6000/rs6000-gen-builtins.c: New.
---
gcc/config/rs6000/rs6000-gen-builtins.c | 165
1 file changed, 165 insertions(+)
create mode 100644 gcc/config/rs6000/rs6000-gen-builtins.c
diff --git
2021-04-02 Bill Schmidt
gcc/
* config/rs6000/rs6000-gen-builtins.c (void_status): New enum.
(basetype): Likewise.
(typeinfo): New struct.
(handle_pointer): New function.
(match_basetype): New stub function.
(match_const_restriction): Likewise.
2021-03-03 Bill Schmidt
gcc/
* config/rs6000/rs6000-gen-builtins.c (MININT): New defined
constant.
(exit_codes): New enum.
(consume_whitespace): New function.
(advance_line): Likewise.
(safe_inc_pos): Likewise.
(match_identifier):
2021-04-02 Bill Schmidt
gcc/
* config/rs6000/rs6000-gen-builtins.c (match_basetype): Implement.
---
gcc/config/rs6000/rs6000-gen-builtins.c | 64 +
1 file changed, 64 insertions(+)
diff --git a/gcc/config/rs6000/rs6000-gen-builtins.c
2021-03-24 Bill Schmidt
gcc/
* config/rs6000/rs6000-gen-builtins.c (restriction): New enum.
(typeinfo): Add restr field.
(match_const_restriction): Implement.
---
gcc/config/rs6000/rs6000-gen-builtins.c | 136
1 file changed, 136 insertions(+)
2021-03-03 Bill Schmidt
gcc/
* config/rs6000/rs6000-gen-builtins.c (rbtree.h): New #include.
(num_bifs): New filescope variable.
(num_ovld_stanzas): Likewise.
(num_ovlds): Likewise.
(exit_codes): Add more enum values.
(parse_codes): New enum.
2021-03-03 Bill Schmidt
gcc/
* config/rs6000/rbtree.c: New file.
* config/rs6000/rbtree.h: New file.
---
gcc/config/rs6000/rbtree.c | 233 +
gcc/config/rs6000/rbtree.h | 51
2 files changed, 284 insertions(+)
create mode 100644
2021-03-24 Bill Schmidt
gcc/
* config/rs6000/rs6000-gen-builtins.c (parse_bif_attrs):
Implement.
---
gcc/config/rs6000/rs6000-gen-builtins.c | 102
1 file changed, 102 insertions(+)
diff --git a/gcc/config/rs6000/rs6000-gen-builtins.c
2021-04-02 Bill Schmidt
gcc/
* config/rs6000/rs6000-gen-builtins.c (bif_stanza): New enum.
(curr_bif_stanza): New filescope variable.
(stanza_entry): New struct.
(stanza_map): New initialized filescope variable.
(enable_string): Likewise.
2021-03-03 Bill Schmidt
gcc/
* config/rs6000/rs6000-gen-builtins.c (ovld_stanza): New struct.
(MAXOVLDSTANZAS): New defined constant.
(ovld_stanzas): New filescope variable.
(curr_ovld_stanza): Likewise.
(MAXOVLDS): New defined constant.
2021-04-02 Bill Schmidt
gcc/
* config/rs6000/rs6000-gen-builtins.c (complete_vector_type): New
function.
(complete_base_type): Likewise.
(construct_fntype_id): Likewise.
(parse_bif_entry): Call construct_fntype_id.
(parse_ovld_entry): Likewise.
2021-04-02 Bill Schmidt
gcc/
* config/rs6000/rs6000-gen-builtins.c (write_defines_file):
Implement.
---
gcc/config/rs6000/rs6000-gen-builtins.c | 17 +
1 file changed, 17 insertions(+)
diff --git a/gcc/config/rs6000/rs6000-gen-builtins.c
2021-03-24 Bill Schmidt
gcc/
* config/rs6000/rs6000-gen-builtins.c
(write_autogenerated_header): New function.
(write_decls): Likewise.
(write_extern_fntype): New callback function.
(write_header_file): Implement.
---
2021-03-24 Bill Schmidt
gcc/
* config/rs6000/rs6000-gen-builtins.c (parse_args): New function.
(parse_prototype): Implement.
---
gcc/config/rs6000/rs6000-gen-builtins.c | 143
1 file changed, 143 insertions(+)
diff --git
2021-03-04 Bill Schmidt
gcc/
* config.gcc (extra_objs): Include rs6000-builtins.o and
rs6000-c.o.
* config/rs6000/t-rs6000 (OUT_FILE_DEPS): Add rs6000-builtins.h.
(rs6000-gen-builtins.o): New target.
(rbtree.o): Likewise.
(rs6000-gen-builtins):
2021-03-03 Bill Schmidt
gcc/
* config/rs6000/rs6000-gen-builtins.c (write_init_bif_table):
Implement.
---
gcc/config/rs6000/rs6000-gen-builtins.c | 71 +
1 file changed, 71 insertions(+)
diff --git a/gcc/config/rs6000/rs6000-gen-builtins.c
2021-03-04 Bill Schmidt
gcc/
* config.gcc (target_gtfiles): Add ./rs6000-builtins.h.
* config/rs6000/t-rs6000 (EXTRA_GTYPE_DEPS): Set.
---
gcc/config.gcc | 1 +
gcc/config/rs6000/t-rs6000 | 1 +
2 files changed, 2 insertions(+)
diff --git a/gcc/config.gcc
2021-03-03 Bill Schmidt
gcc/
* config/rs6000/rs6000-gen-builtins.c (write_ovld_static_init):
New function.
(write_init_file): Call write_ovld_static_init.
---
gcc/config/rs6000/rs6000-gen-builtins.c | 53 +
1 file changed, 53 insertions(+)
diff
2021-04-02 Bill Schmidt
gcc/
* config/rs6000/rs6000-builtin-new.def: Add always, power5, and
power6 stanzas.
---
gcc/config/rs6000/rs6000-builtin-new.def | 72
1 file changed, 72 insertions(+)
diff --git a/gcc/config/rs6000/rs6000-builtin-new.def
2021-04-01 Bill Schmidt
gcc/
* config/rs6000/rs6000-gen-builtins.c (write_fntype): New
function.
(write_fntype_init): New stub function.
(write_init_bif_table): Likewise.
(write_init_ovld_table): New function.
(write_init_file): Implement.
---
501 - 600 of 902 matches
Mail list logo