diff options
author | Ash Wolf <ninji@wuffs.org> | 2022-12-14 00:16:59 +0000 |
---|---|---|
committer | Ash Wolf <ninji@wuffs.org> | 2022-12-14 00:16:59 +0000 |
commit | 25bab8b1fb2fc851ea3f1f630b3de65ca6afdc22 (patch) | |
tree | c0ee632aa3752884b996c562622e2ece88216ea4 /includes/compiler/Scheduler.h | |
parent | 9d2728a5605f651934fe67a6fe6986b3e4a2c011 (diff) | |
download | MWCC-25bab8b1fb2fc851ea3f1f630b3de65ca6afdc22.tar.gz MWCC-25bab8b1fb2fc851ea3f1f630b3de65ca6afdc22.zip |
haha it's been a while since i last committed, hasn't it
Diffstat (limited to '')
-rw-r--r-- | includes/compiler/Scheduler.h | 42 |
1 files changed, 42 insertions, 0 deletions
diff --git a/includes/compiler/Scheduler.h b/includes/compiler/Scheduler.h index 535bab5..1518e3a 100644 --- a/includes/compiler/Scheduler.h +++ b/includes/compiler/Scheduler.h @@ -3,4 +3,46 @@ #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 |