1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
|
void show_instructions (struct instruction *instructions);
void initialize_linearization (VOID);
void evaluate_arguments_and_free_addresses (union instruction_parameter arguments[],int n_arguments);
void get_n_virtual_registers (int *n_virtual_a_regs_p,int *n_virtual_d_regs_p,int *n_virtual_f_regs_p);
void calculate_and_linearize_branch_false (LABEL *label,INSTRUCTION_GRAPH graph);
void calculate_and_linearize_branch_true (LABEL *label,INSTRUCTION_GRAPH graph);
void calculate_and_linearize_graph (INSTRUCTION_GRAPH graph);
void free_all_aregisters (VOID);
void free_all_dregisters (VOID);
void free_all_fregisters (VOID);
void allocate_aregister (int aregister);
void allocate_dregister (int dregister);
void allocate_fregister (int fregister);
#ifdef M68000
void instruction_pd (int instruction_code,int register_1);
#endif
void i_jmp_l (LABEL *label,int n_a_registers);
void i_jmp_id (int offset_1,int register_1,int n_a_registers);
#if ! (defined (sparc) || defined (G_POWER))
void i_jsr_id (int offset,int register_1,int n_a_registers);
void i_jsr_l (LABEL *label,int n_a_registers);
void i_rts (void);
# ifdef I486
void i_rts_i (int offset);
void i_rts_profile (void);
void i_jmp_r_profile (int a_reg);
void i_jmp_l_profile (LABEL *label,int offset);
void i_jmp_id_profile (int offset_1,int register_1,int n_a_registers);
# endif
#else
void i_jsr_id_id (int offset_1,int register_1,int offset_2);
void i_jsr_l_id (LABEL *label,int offset);
void i_rts (int offset_1,int offset_2);
# ifdef G_POWER
void i_rts_c (void);
void i_rts_r (int register1,int offset_1);
void i_rts_r_profile (int register1,int offset_1);
void i_jmp_l_profile (LABEL *label,int offset);
void i_jmp_id_profile (int offset_1,int register_1,int n_a_registers);
void i_rts_profile (int offset_1,int offset_2);
void i_jsr_id_idu (int offset_1,int register_1,int offset_2);
void i_jsr_l_idu (LABEL *label,int offset);
# endif
#endif
#if defined (sparc)
void i_call_l (LABEL *label);
void i_call_r (int register_1);
#elif defined (G_POWER)
void i_call_l (LABEL *label,int frame_size);
void i_call_r (int register_1,int frame_size);
#endif
void i_beq_l (LABEL *label);
#ifdef M68000
extern LONG *i_bmi_i (VOID);
void i_bmi_l (LABEL *label);
#endif
#if defined (G_POWER) || defined (G_AI64)
void i_or_i_r (LONG value,int register_1);
#endif
#ifdef G_POWER
void i_and_i_r (LONG value,int register_1);
void i_bnep_l (LABEL *label);
void i_mtctr (int register_1);
#endif
#if defined (sparc) || defined (I486) || defined (G_POWER)
void i_btst_i_r (LONG i,int register_1);
#endif
void i_ext_r (int register_1);
void i_fmove_fr_fr (int register_1,int register_2);
void i_fmove_fr_id (int register_1,int offset,int register_2);
#ifdef M68000
void i_fmove_fr_pd (int register_1,int register_2);
void i_fmove_fr_pi (int register_1,int register_2);
#endif
void i_fmove_id_fr (int offset,int register_2,int register_1);
#ifdef M68000
void i_fmove_pd_fr (int register_1,int register_2);
void i_fmove_pi_fr (int register_1,int register_2);
void i_move_id_pd (int offset,int register_1,int register_2);
#endif
void i_move_id_id (int offset_1,int register_1,int offset_2,int register_2);
void i_move_id_r (int offset,int register_1,int register_2);
#ifdef G_POWER
void i_move_idu_r (int offset,int register_1,int register_2);
void i_move_id_idu (int offset1,int register_1,int offset2,int register_2);
void i_move_r_idu (int register_1,int offset,int register_2);
void i_movew_id_idu (int offset1,int register_1,int offset2,int register_2);
void i_movew_r_idu (int register_1,int offset,int register_2);
#endif
void i_move_i_r (CleanInt i,int register_1);
void i_move_l_r (LABEL *label,int register_1);
#ifdef M68000
void i_move_pi_id (int register_1,int offset_2,int register_2);
void i_move_pi_r (int register_1,int register_2);
void i_move_pd_r (int register_1,int register_2);
#endif
#if defined (I486)
void i_move_r_l (int register_1,LABEL *label);
#endif
void i_move_r_id (int register_1,int offset,int register_2);
#ifdef M68000
void i_move_r_pd (int register_1,int register_2);
void i_move_r_pi (int register_1,int register_2);
#endif
void i_move_r_r (int register_1,int register_2);
#ifdef M68000
void i_movem_pd (int register_1,int n_arguments,int arguments[]);
void i_movem_pi (int register_1,int n_arguments,int arguments[]);
void i_movem_id_r (int offset,int register_1,int register_2);
void i_movew_id_pd (int offset_1,int register_1,int register_2);
void i_movew_pi_id (int register_1,int offset_2,int register_2);
void i_movew_pi_r (int register_1,int register_2);
void i_movew_r_pd (int register_1,int register_2);
#endif
void i_movew_id_r (int offset,int register_1,int register_2);
void i_lea_id_r (int offset,int register_1,int register_2);
void i_lea_l_i_r (LABEL *label,int offset,int register_1);
void i_add_i_r (LONG value,int register_1);
void i_add_r_r (int register_1,int register_2);
void i_schedule_i (int value);
void i_sub_i_r (LONG value,int register_1);
void i_tst_r (int register_1);
void i_word_i (int value);
extern int local_data_offset;
extern int condition_to_set_instruction[];
|