diff options
Diffstat (limited to 'src/jit/regset.h')
-rw-r--r-- | src/jit/regset.h | 28 |
1 files changed, 27 insertions, 1 deletions
diff --git a/src/jit/regset.h b/src/jit/regset.h index 985cee71d7..3b0ccae614 100644 --- a/src/jit/regset.h +++ b/src/jit/regset.h @@ -155,10 +155,36 @@ public: // TODO-Cleanup: Should be private, but GCInfo uses them #ifdef LEGACY_BACKEND regMaskTP rsMaskUsed; // currently 'used' registers mask #endif // LEGACY_BACKEND - regMaskTP rsMaskVars; // mask of registers currently allocated to variables + + __declspec(property(get=GetMaskVars,put=SetMaskVars)) + regMaskTP rsMaskVars; // mask of registers currently allocated to variables + + regMaskTP GetMaskVars() const // 'get' property function for rsMaskVars property + { + return _rsMaskVars; + } + + void SetMaskVars(regMaskTP newMaskVars); // 'put' property function for rsMaskVars property + + void AddMaskVars(regMaskTP addMaskVars) // union 'addMaskVars' with the rsMaskVars set + { + SetMaskVars(_rsMaskVars | addMaskVars); + } + + void RemoveMaskVars(regMaskTP removeMaskVars) // remove 'removeMaskVars' from the rsMaskVars set (like bitset DiffD) + { + SetMaskVars(_rsMaskVars & ~removeMaskVars); + } + + void ClearMaskVars() // Like SetMaskVars(RBM_NONE), but without any debug output. + { + _rsMaskVars = RBM_NONE; + } private: + regMaskTP _rsMaskVars; // backing store for rsMaskVars property + #ifdef LEGACY_BACKEND regMaskTP rsMaskLock; // currently 'locked' registers mask regMaskTP rsMaskMult; // currently 'multiply used' registers mask |