1 /* This file contains the definitions and documentation for the
2 extra tree codes used by gcj.
3 Copyright (C
) 1996, 2007 Free Software Foundation
, Inc.
5 This file is part of GCC.
7 GCC is free software
; you can redistribute it and
/or modify it under
8 the terms of the GNU General Public License as published by the Free
9 Software Foundation
; either version
2, or (at your option
) any later
12 GCC is distributed in the hope that it will be useful
, but WITHOUT ANY
13 WARRANTY
; without even the implied warranty of MERCHANTABILITY or
14 FITNESS
FOR A PARTICULAR PURPOSE. See the GNU General Public License
17 You should have received a copy of the GNU General Public License
18 along with GCC
; see the file COPYING. If not
, write to the Free
19 Software Foundation
, 51 Franklin Street
, Fifth Floor
, Boston
, MA
23 /* Shift right
, logical.
*/
24 DEFTREECODE (URSHIFT_EXPR
, "urshift_expr", tcc_binary
, 2)
26 /* Return
-1, 0, 1 depending on whether the first argument is
27 less
, equal
, or greater to the second argument.
*/
28 DEFTREECODE (COMPARE_EXPR
, "compare_expr", tcc_binary
, 2)
30 /* Same as COMPARE_EXPR
, but if either value is NaN
, the result is
-1.
*/
31 DEFTREECODE (COMPARE_L_EXPR
, "compare_l_expr", tcc_binary
, 2)
32 /* Same as COMPARE_EXPR
, but if either value is NaN
, the result is
1.
*/
33 DEFTREECODE (COMPARE_G_EXPR
, "compare_g_expr", tcc_binary
, 2)
35 /* A labeled block. Operand
0 is the label that will be generated to
36 mark the end of the block. Operand
1 is the labeled block body.
*/
37 DEFTREECODE (LABELED_BLOCK_EXPR
, "labeled_block_expr", tcc_expression
, 2)
39 /* Exit a labeled block
, possibly returning a value. Operand
0 is a
40 LABELED_BLOCK_EXPR to exit.
*/
41 DEFTREECODE (EXIT_BLOCK_EXPR
, "exit_block_expr", tcc_statement
, 1)
44 Operand
0 is the tried block
,
45 Operand
1 contains chained catch nodes.
*/
46 DEFTREECODE (TRY_EXPR
, "try-catch", tcc_expression
, 2)