diff options
Diffstat (limited to '')
-rw-r--r-- | includes/compiler/InterferenceGraph.h | 35 |
1 files changed, 35 insertions, 0 deletions
diff --git a/includes/compiler/InterferenceGraph.h b/includes/compiler/InterferenceGraph.h index 588450c..8fa44a1 100644 --- a/includes/compiler/InterferenceGraph.h +++ b/includes/compiler/InterferenceGraph.h @@ -3,4 +3,39 @@ #include "compiler/common.h" +enum { + fSpilled = 1, + fPushed = 2, + fCoalesced = 4, + fCoalescedInto = 8, + fPairHigh = 0x10, + fPairLow = 0x20, + fIGNode40 = 0x40 +}; + +#ifdef __MWERKS__ +#pragma options align=mac68k +#endif +typedef struct IGNode { + struct IGNode *next; + Object *spillTemporary; + PCode *instr8; + int spillCost; + short x10; + short x12; + short x14; + UInt16 flags; + short arraySize; + short array[1]; +} IGNode; +#ifdef __MWERKS__ +#pragma options align=reset +#endif + +extern IGNode **interferencegraph; +extern Boolean coalesced_nregisters; + +extern int interferes(UInt32 a, UInt32 b); +extern void buildinterferencegraph(Object *proc); + #endif |