#include "opt_cvtl_rule.h"#include "wn.h"
Go to the source code of this file.
Classes | |
| struct | cvt_rule |
Defines | |
| #define | nop {NOT_AT_ALL,OPCODE_LAST+1} |
| #define | I8I4 {NEED_CVT, OPC_I8I4CVT} |
| #define | U8I4 {NEED_CVT, OPC_U8I4CVT} |
| #define | I4I8 {NEED_CVT, OPC_I4I8CVT} |
| #define | U4I8 {NEED_CVT, OPC_U4I8CVT} |
| #define | I8U4 {NEED_CVT, OPC_I8U4CVT} |
| #define | U8U4 {NEED_CVT, OPC_U8U4CVT} |
| #define | I4U8 {NEED_CVT, OPC_I4U8CVT} |
| #define | U4U8 {NEED_CVT, OPC_U4U8CVT} |
| #define | I4I2 {NEED_CVTL, OPC_I4CVTL} |
| #define | I4I1 {NEED_CVTL, OPC_I4CVTL} |
| #define | U4U2 {NEED_CVTL, OPC_U4CVTL} |
| #define | U4U1 {NEED_CVTL, OPC_U4CVTL} |
| #define | I4U4 {NEED_CVTL, OPC_U4CVTL} |
| #define | U4I4 {NEED_CVTL, OPC_I4CVTL} |
| #define | I8I2 {NEED_CVTL, OPC_I8CVTL} |
| #define | I8I1 {NEED_CVTL, OPC_I8CVTL} |
| #define | U8U2 {NEED_CVTL, OPC_U8CVTL} |
| #define | U8U1 {NEED_CVTL, OPC_U8CVTL} |
| #define | I1I4 {NEED_CVTL, OPC_I4CVTL} |
| #define | I2I4 {NEED_CVTL, OPC_I4CVTL} |
| #define | I1I8 {NEED_CVTL, OPC_I8CVTL} |
| #define | I2I8 {NEED_CVTL, OPC_I8CVTL} |
| #define | U1U4 {NEED_CVTL, OPC_U4CVTL} |
| #define | U2U4 {NEED_CVTL, OPC_U4CVTL} |
| #define | U1U8 {NEED_CVTL, OPC_U8CVTL} |
| #define | U2U8 {NEED_CVTL, OPC_U8CVTL} |
| #define | I4B {NEED_CVT, OPC_I4BCVT} |
| #define | I8B {NEED_CVT, OPC_I8BCVT} |
| #define | U4B {NEED_CVT, OPC_U4BCVT} |
| #define | U8B {NEED_CVT, OPC_U8BCVT} |
Functions | |
| INT | Need_type_conversion (TYPE_ID from_ty, TYPE_ID to_ty, OPCODE *opc) |
| INT | Need_load_type_conversion (BOOL source_sign_extd, BOOL target_sign_extd, TYPE_ID to_ty, TYPE_ID dsc_ty, OPCODE *opc) |
| BOOL | Types_are_compatible (TYPE_ID lhs_type, TYPE_ID rhs_type) |
| BOOL | Types_are_compatible (TYPE_ID lhs_type, WN *rhs_wn) |
| TYPE_ID | Rebuild_rtype (TYPE_ID rtype, INT bits) |
| INT | Actual_data_size (WN *wn) |
| TYPE_ID | Actual_cvtl_type (OPCODE opc, INT bits) |
| TYPE_ID | Actual_result_type (WN *wn) |
| TYPE_ID | Adjust_signed_type (TYPE_ID rtype, INT size, WN *wn) |
Variables | |
| static struct cvt_rule | cvt_rule [MTYPE_U8+1][MTYPE_U8+1] |
| #define I1I4 {NEED_CVTL, OPC_I4CVTL} |
Definition at line 70 of file opt_cvtl_rule.cxx.
| #define I1I8 {NEED_CVTL, OPC_I8CVTL} |
Definition at line 72 of file opt_cvtl_rule.cxx.
| #define I2I4 {NEED_CVTL, OPC_I4CVTL} |
Definition at line 71 of file opt_cvtl_rule.cxx.
| #define I2I8 {NEED_CVTL, OPC_I8CVTL} |
Definition at line 73 of file opt_cvtl_rule.cxx.
| #define I4B {NEED_CVT, OPC_I4BCVT} |
Definition at line 79 of file opt_cvtl_rule.cxx.
| #define I4I1 {NEED_CVTL, OPC_I4CVTL} |
Definition at line 60 of file opt_cvtl_rule.cxx.
| #define I4I2 {NEED_CVTL, OPC_I4CVTL} |
Definition at line 59 of file opt_cvtl_rule.cxx.
| #define I4I8 {NEED_CVT, OPC_I4I8CVT} |
Definition at line 52 of file opt_cvtl_rule.cxx.
| #define I4U4 {NEED_CVTL, OPC_U4CVTL} |
Definition at line 63 of file opt_cvtl_rule.cxx.
| #define I4U8 {NEED_CVT, OPC_I4U8CVT} |
Definition at line 56 of file opt_cvtl_rule.cxx.
| #define I8B {NEED_CVT, OPC_I8BCVT} |
Definition at line 80 of file opt_cvtl_rule.cxx.
| #define I8I1 {NEED_CVTL, OPC_I8CVTL} |
Definition at line 66 of file opt_cvtl_rule.cxx.
| #define I8I2 {NEED_CVTL, OPC_I8CVTL} |
Definition at line 65 of file opt_cvtl_rule.cxx.
| #define I8I4 {NEED_CVT, OPC_I8I4CVT} |
Definition at line 50 of file opt_cvtl_rule.cxx.
| #define I8U4 {NEED_CVT, OPC_I8U4CVT} |
Definition at line 54 of file opt_cvtl_rule.cxx.
| #define nop {NOT_AT_ALL,OPCODE_LAST+1} |
Definition at line 49 of file opt_cvtl_rule.cxx.
| #define U1U4 {NEED_CVTL, OPC_U4CVTL} |
Definition at line 74 of file opt_cvtl_rule.cxx.
| #define U1U8 {NEED_CVTL, OPC_U8CVTL} |
Definition at line 76 of file opt_cvtl_rule.cxx.
| #define U2U4 {NEED_CVTL, OPC_U4CVTL} |
Definition at line 75 of file opt_cvtl_rule.cxx.
| #define U2U8 {NEED_CVTL, OPC_U8CVTL} |
Definition at line 77 of file opt_cvtl_rule.cxx.
| #define U4B {NEED_CVT, OPC_U4BCVT} |
Definition at line 81 of file opt_cvtl_rule.cxx.
| #define U4I4 {NEED_CVTL, OPC_I4CVTL} |
Definition at line 64 of file opt_cvtl_rule.cxx.
| #define U4I8 {NEED_CVT, OPC_U4I8CVT} |
Definition at line 53 of file opt_cvtl_rule.cxx.
| #define U4U1 {NEED_CVTL, OPC_U4CVTL} |
Definition at line 62 of file opt_cvtl_rule.cxx.
| #define U4U2 {NEED_CVTL, OPC_U4CVTL} |
Definition at line 61 of file opt_cvtl_rule.cxx.
| #define U4U8 {NEED_CVT, OPC_U4U8CVT} |
Definition at line 57 of file opt_cvtl_rule.cxx.
| #define U8B {NEED_CVT, OPC_U8BCVT} |
Definition at line 82 of file opt_cvtl_rule.cxx.
| #define U8I4 {NEED_CVT, OPC_U8I4CVT} |
Definition at line 51 of file opt_cvtl_rule.cxx.
| #define U8U1 {NEED_CVTL, OPC_U8CVTL} |
Definition at line 68 of file opt_cvtl_rule.cxx.
| #define U8U2 {NEED_CVTL, OPC_U8CVTL} |
Definition at line 67 of file opt_cvtl_rule.cxx.
| #define U8U4 {NEED_CVT, OPC_U8U4CVT} |
Definition at line 55 of file opt_cvtl_rule.cxx.
Definition at line 371 of file opt_cvtl_rule.cxx.
References OPCODE_rtype(), and Rebuild_rtype().

Definition at line 268 of file opt_cvtl_rule.cxx.
References Actual_data_size(), MTYPE_CLASS_INTEGER, MTYPE_is_integral, MTYPE_is_signed, MTYPE_is_unsigned, MTYPE_size_min, MTYPE_type_class, OPR_ASHR, OPR_BAND, OPR_BIOR, OPR_CVTL, OPR_ILDBITS, OPR_ILOAD, OPR_INTCONST, OPR_LDBITS, OPR_LDID, OPR_LSHR, OPR_SHL, Pointer_type, val, WN_bit_size(), WN_const_val(), WN_cvtl_bits(), WN_desc(), WN_kid0(), WN_kid1(), WN_operator(), and WN_rtype().
Referenced by Actual_data_size(), Actual_result_type(), and Adjust_signed_type().

Definition at line 380 of file opt_cvtl_rule.cxx.
References Actual_data_size(), MTYPE_CLASS_INTEGER, MTYPE_type_class, OPCODE_operator(), OPCODE_rtype(), OPR_ASHR, OPR_BAND, OPR_BIOR, OPR_CVTL, OPR_ILDBITS, OPR_ILOAD, OPR_INTCONST, OPR_LDBITS, OPR_LDID, OPR_LSHR, OPR_SHL, Rebuild_rtype(), and WN_opcode().
Referenced by Types_are_compatible().

Definition at line 409 of file opt_cvtl_rule.cxx.
References Actual_data_size(), MTYPE_is_integral, MTYPE_is_unsigned, and Rebuild_rtype().

| INT Need_load_type_conversion | ( | BOOL | source_sign_extd, | |
| BOOL | target_sign_extd, | |||
| TYPE_ID | to_ty, | |||
| TYPE_ID | dsc_ty, | |||
| OPCODE * | opc | |||
| ) |
Definition at line 177 of file opt_cvtl_rule.cxx.
References Is_True, MTYPE_BS, MTYPE_I4, MTYPE_is_integral, MTYPE_size_min, OPC_I4CVTL, OPC_I8CVTL, OPC_U4CVTL, OPC_U4U8CVT, OPC_U8CVTL, and OPC_U8U4CVT.
Definition at line 120 of file opt_cvtl_rule.cxx.
References MTYPE_is_integral, NULL, OPCODE_make_op(), and OPR_CVT.
Referenced by Types_are_compatible().

Definition at line 240 of file opt_cvtl_rule.cxx.
References MTYPE_I4, and MTYPE_I8.
Referenced by Actual_cvtl_type(), Actual_result_type(), and Adjust_signed_type().
Definition at line 214 of file opt_cvtl_rule.cxx.
References MTYPE_CLASS_UNSIGNED_INTEGER, MTYPE_type_class, and Need_type_conversion().
Referenced by Types_are_compatible().

Definition at line 231 of file opt_cvtl_rule.cxx.
References Actual_result_type(), and Types_are_compatible().

1.7.1