blob: 1518e3ad60c2ab5ab995db4e746521bf5e0dbb4e (
plain)
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
|
#ifndef COMPILER_SCHEDULER_H
#define COMPILER_SCHEDULER_H
#include "compiler/common.h"
typedef int (*LatencyFunc)(PCode *instr);
typedef void (*InitializeFunc)(void);
typedef int (*CanIssueFunc)(PCode *instr);
typedef void (*IssueFunc)(PCode *instr);
typedef void (*AdvanceClockFunc)(void);
typedef int (*SerializesFunc)(PCode *instr);
typedef int (*UsesVPermuteUnitFunc)(PCode *instr);
#ifdef __MWERKS__
#pragma options align=mac68k
#endif
typedef struct MachineInfo {
int x0;
int x4;
int x8;
LatencyFunc latency;
InitializeFunc initialize;
CanIssueFunc can_issue;
IssueFunc issue;
AdvanceClockFunc advance_clock;
SerializesFunc serializes;
UsesVPermuteUnitFunc uses_vpermute_unit;
} MachineInfo;
#ifdef __MWERKS__
#pragma options align=reset
#endif
extern MachineInfo machine601;
extern MachineInfo machine603;
extern MachineInfo machine603e;
extern MachineInfo machine604;
extern MachineInfo machine7400;
extern MachineInfo machine7450;
extern MachineInfo machine750;
extern MachineInfo machine821;
extern int is_same_operand(PCodeArg *a, PCodeArg *b);
extern void scheduleinstructions(Boolean flag);
extern int is_dependent(PCode *a, PCode *b, char rclass);
extern int uses_vpermute_unit(PCode *instr);
extern int default_uses_vpermute_unit(PCode *instr);
#endif
|