diff options
author | Bruce Forstall <brucefo@microsoft.com> | 2017-04-12 17:16:46 -0700 |
---|---|---|
committer | Bruce Forstall <brucefo@microsoft.com> | 2017-04-14 13:19:29 -0700 |
commit | 950b0904511058e3d0254009573535e576fe4574 (patch) | |
tree | 8e8c93cfe9b9934bf8ecd43f5b25bacbb8a40e19 /src/zap | |
parent | 4a2298203489a9b77ebe8e5c9116de35eb62c3ca (diff) | |
download | coreclr-950b0904511058e3d0254009573535e576fe4574.tar.gz coreclr-950b0904511058e3d0254009573535e576fe4574.tar.bz2 coreclr-950b0904511058e3d0254009573535e576fe4574.zip |
Introduce API for codegen getting temp registers from gtRsvdRegs
LSRA puts a set of temporary registers needed by a node in the
gtRsvdRegs register mask. Currently, evey codegen function that
needs to use a temporary register manually manipulates this mask.
Introduce a few functions to make this simpler and more regular:
1. GetSingleTempReg() // Gets a temp; asserts there is exactly one temp reg.
2. ExtractTempReg() // Gets the lowest temp, removes it from gtRsvdRegs so subsequent calls don't see it.
3. AvailableTempRegCount() // Returns a count of available temp registers.
All take an optional register mask, so you can extract a register from
just the set specified by the mask (typically RBM_ALLINT or RBM_ALLFLOAT).
Diffstat (limited to 'src/zap')
0 files changed, 0 insertions, 0 deletions