summaryrefslogtreecommitdiff
path: root/includes/compiler/Scheduler.h
diff options
context:
space:
mode:
authorAsh Wolf <ninji@wuffs.org>2022-12-14 00:16:59 +0000
committerAsh Wolf <ninji@wuffs.org>2022-12-14 00:16:59 +0000
commit25bab8b1fb2fc851ea3f1f630b3de65ca6afdc22 (patch)
treec0ee632aa3752884b996c562622e2ece88216ea4 /includes/compiler/Scheduler.h
parent9d2728a5605f651934fe67a6fe6986b3e4a2c011 (diff)
downloadMWCC-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.h42
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