summaryrefslogtreecommitdiff
path: root/cglin.h
blob: b69470679e4452a9bbb83d7ba7629b8661f6b85e (plain) (blame)
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[];