comparison gcc/rtl.def @ 132:d34655255c78

update gcc-8.2
author mir3636
date Thu, 25 Oct 2018 10:21:07 +0900
parents 84e7813d76e9
children 1830386684a0
comparison
equal deleted inserted replaced
130:e108057fa461 132:d34655255c78
1 /* This file contains the definitions and documentation for the 1 /* This file contains the definitions and documentation for the
2 Register Transfer Expressions (rtx's) that make up the 2 Register Transfer Expressions (rtx's) that make up the
3 Register Transfer Language (rtl) used in the Back End of the GNU compiler. 3 Register Transfer Language (rtl) used in the Back End of the GNU compiler.
4 Copyright (C) 1987-2017 Free Software Foundation, Inc. 4 Copyright (C) 1987-2018 Free Software Foundation, Inc.
5 5
6 This file is part of GCC. 6 This file is part of GCC.
7 7
8 GCC is free software; you can redistribute it and/or modify it under 8 GCC is free software; you can redistribute it and/or modify it under
9 the terms of the GNU General Public License as published by the Free 9 the terms of the GNU General Public License as published by the Free
310 CLOBBER can not appear as an operand of other rtx except for PARALLEL. 310 CLOBBER can not appear as an operand of other rtx except for PARALLEL.
311 CLOBBER of a hard register appearing by itself (not within PARALLEL) 311 CLOBBER of a hard register appearing by itself (not within PARALLEL)
312 is considered undeletable before reload. */ 312 is considered undeletable before reload. */
313 DEF_RTL_EXPR(CLOBBER, "clobber", "e", RTX_EXTRA) 313 DEF_RTL_EXPR(CLOBBER, "clobber", "e", RTX_EXTRA)
314 314
315 /* Indicate that the upper parts of something are clobbered in a way that we
316 don't want to explain. The MODE references the lower bits that will be
317 preserved. Anything above that size will be clobbered.
318
319 CLOBBER_HIGH only occurs as the operand of a PARALLEL rtx. It cannot appear
320 in other contexts, and unlike CLOBBER, it cannot appear on its own.
321 CLOBBER_HIGH can only be used with fixed register rtxes. */
322
323 DEF_RTL_EXPR(CLOBBER_HIGH, "clobber_high", "e", RTX_EXTRA)
324
315 /* Call a subroutine. 325 /* Call a subroutine.
316 Operand 1 is the address to call. 326 Operand 1 is the address to call.
317 Operand 2 is the number of arguments. */ 327 Operand 2 is the number of arguments. */
318 328
319 DEF_RTL_EXPR(CALL, "call", "ee", RTX_EXTRA) 329 DEF_RTL_EXPR(CALL, "call", "ee", RTX_EXTRA)
345 /* numeric integer constant */ 355 /* numeric integer constant */
346 DEF_RTL_EXPR(CONST_INT, "const_int", "w", RTX_CONST_OBJ) 356 DEF_RTL_EXPR(CONST_INT, "const_int", "w", RTX_CONST_OBJ)
347 357
348 /* numeric integer constant */ 358 /* numeric integer constant */
349 DEF_RTL_EXPR(CONST_WIDE_INT, "const_wide_int", "", RTX_CONST_OBJ) 359 DEF_RTL_EXPR(CONST_WIDE_INT, "const_wide_int", "", RTX_CONST_OBJ)
360
361 /* An rtx representation of a poly_wide_int. */
362 DEF_RTL_EXPR(CONST_POLY_INT, "const_poly_int", "", RTX_CONST_OBJ)
350 363
351 /* fixed-point constant */ 364 /* fixed-point constant */
352 DEF_RTL_EXPR(CONST_FIXED, "const_fixed", "www", RTX_CONST_OBJ) 365 DEF_RTL_EXPR(CONST_FIXED, "const_fixed", "www", RTX_CONST_OBJ)
353 366
354 /* numeric floating point or integer constant. If the mode is 367 /* numeric floating point or integer constant. If the mode is
389 needed, in which case it can remain a SCRATCH. */ 402 needed, in which case it can remain a SCRATCH. */
390 DEF_RTL_EXPR(SCRATCH, "scratch", "", RTX_OBJ) 403 DEF_RTL_EXPR(SCRATCH, "scratch", "", RTX_OBJ)
391 404
392 /* A reference to a part of another value. The first operand is the 405 /* A reference to a part of another value. The first operand is the
393 complete value and the second is the byte offset of the selected part. */ 406 complete value and the second is the byte offset of the selected part. */
394 DEF_RTL_EXPR(SUBREG, "subreg", "ei", RTX_EXTRA) 407 DEF_RTL_EXPR(SUBREG, "subreg", "ep", RTX_EXTRA)
395 408
396 /* This one-argument rtx is used for move instructions 409 /* This one-argument rtx is used for move instructions
397 that are guaranteed to alter only the low part of a destination. 410 that are guaranteed to alter only the low part of a destination.
398 Thus, (SET (SUBREG:HI (REG...)) (MEM:HI ...)) 411 Thus, (SET (SUBREG:HI (REG...)) (MEM:HI ...))
399 has an unspecified effect on the high part of REG, 412 has an unspecified effect on the high part of REG,
708 duplicating the input values. The output vector mode must have the same 721 duplicating the input values. The output vector mode must have the same
709 submodes as the input vector mode, and the number of output parts must be 722 submodes as the input vector mode, and the number of output parts must be
710 an integer multiple of the number of input parts. */ 723 an integer multiple of the number of input parts. */
711 DEF_RTL_EXPR(VEC_DUPLICATE, "vec_duplicate", "e", RTX_UNARY) 724 DEF_RTL_EXPR(VEC_DUPLICATE, "vec_duplicate", "e", RTX_UNARY)
712 725
726 /* Creation of a vector in which element I has the value BASE + I * STEP,
727 where BASE is the first operand and STEP is the second. The result
728 must have a vector integer mode. */
729 DEF_RTL_EXPR(VEC_SERIES, "vec_series", "ee", RTX_BIN_ARITH)
730
713 /* Addition with signed saturation */ 731 /* Addition with signed saturation */
714 DEF_RTL_EXPR(SS_PLUS, "ss_plus", "ee", RTX_COMM_ARITH) 732 DEF_RTL_EXPR(SS_PLUS, "ss_plus", "ee", RTX_COMM_ARITH)
715 733
716 /* Addition with unsigned saturation */ 734 /* Addition with unsigned saturation */
717 DEF_RTL_EXPR(US_PLUS, "us_plus", "ee", RTX_COMM_ARITH) 735 DEF_RTL_EXPR(US_PLUS, "us_plus", "ee", RTX_COMM_ARITH)
758 DEF_RTL_EXPR(ENTRY_VALUE, "entry_value", "0", RTX_OBJ) 776 DEF_RTL_EXPR(ENTRY_VALUE, "entry_value", "0", RTX_OBJ)
759 777
760 /* Used in VAR_LOCATION for a reference to a parameter that has 778 /* Used in VAR_LOCATION for a reference to a parameter that has
761 been optimized away completely. */ 779 been optimized away completely. */
762 DEF_RTL_EXPR(DEBUG_PARAMETER_REF, "debug_parameter_ref", "t", RTX_OBJ) 780 DEF_RTL_EXPR(DEBUG_PARAMETER_REF, "debug_parameter_ref", "t", RTX_OBJ)
781
782 /* Used in marker DEBUG_INSNs to avoid being recognized as an insn. */
783 DEF_RTL_EXPR(DEBUG_MARKER, "debug_marker", "", RTX_EXTRA)
763 784
764 /* All expressions from this point forward appear only in machine 785 /* All expressions from this point forward appear only in machine
765 descriptions. */ 786 descriptions. */
766 #ifdef GENERATOR_FILE 787 #ifdef GENERATOR_FILE
767 788
1287 attribute name and the second is the comparison value. */ 1308 attribute name and the second is the comparison value. */
1288 DEF_RTL_EXPR(EQ_ATTR, "eq_attr", "ss", RTX_EXTRA) 1309 DEF_RTL_EXPR(EQ_ATTR, "eq_attr", "ss", RTX_EXTRA)
1289 1310
1290 /* A special case of the above representing a set of alternatives. The first 1311 /* A special case of the above representing a set of alternatives. The first
1291 operand is bitmap of the set, the second one is the default value. */ 1312 operand is bitmap of the set, the second one is the default value. */
1292 DEF_RTL_EXPR(EQ_ATTR_ALT, "eq_attr_alt", "ii", RTX_EXTRA) 1313 DEF_RTL_EXPR(EQ_ATTR_ALT, "eq_attr_alt", "ww", RTX_EXTRA)
1293 1314
1294 /* A conditional expression which is true if the specified flag is 1315 /* A conditional expression which is true if the specified flag is
1295 true for the insn being scheduled in reorg. 1316 true for the insn being scheduled in reorg.
1296 1317
1297 genattr.c defines the following flags which can be tested by 1318 genattr.c defines the following flags which can be tested by