-typedef union rtunion_def
-{
- int rtwint;
- int rtint;
- char *str;
- struct rtx_def *rtx;
-} rtunion;
-
typedef struct rtx_def
{
unsigned short code;
int mode : 8;
- unsigned int jump : 1;
- unsigned int call : 1;
- unsigned int unchanging : 1;
- unsigned int volatil : 1;
- unsigned int in_struct : 1;
- unsigned int used : 1;
- unsigned int integrated : 1;
- rtunion fld[1];
+ int rtint;
} *rtx;
-enum machine_mode {
- PSImode,
- SImode,
- PDImode,
- DImode,
- TImode,
- OImode,
- QImode,
- HImode,
- VOIDmode
-};
-
-#define GET_MODE(RTX) ((RTX)->mode)
-#define PUT_MODE(RTX, MODE) ((RTX)->mode = (MODE))
-
struct rtx_def bla;
-void t(int did_elimination, int n_reloads) {
- rtx insn = &bla;
+void t(int num_eliminable, int n_reloads) {
+ register rtx insn = &bla;
+ int did_elimination = 0;
+
+ if(num_eliminable)
+ did_elimination = rand();
- printf("Before: mode %d, fldint: %d\n", insn->fld[0].rtint);
- PUT_MODE(insn, (did_elimination ? QImode
- : n_reloads ? HImode
- : GET_MODE (insn) == DImode ? DImode
- : VOIDmode));
- printf("After: mode %d, fldint: %d\n", insn->fld[0].rtint);
+ insn->mode = did_elimination ? 42 : insn->mode == 6 ? 6 : 0;
}
int main()
{
- t(1, 1);
+ bla.rtint = 8;
+ bla.mode = 6;
+ printf("Before: %d %d\n", bla.mode, bla.rtint);
+ t(0, 1);
+ printf("After: %d %d\n", bla.mode, bla.rtint);
return 0;
}