-
Notifications
You must be signed in to change notification settings - Fork 5.2k
Open
Labels
area-CodeGen-coreclrCLR JIT compiler in src/coreclr/src/jit and related components such as SuperPMICLR JIT compiler in src/coreclr/src/jit and related components such as SuperPMI
Milestone
Description
The logic in emitIns_Call removes callee-trashed registers from the saved set recorded:
runtime/src/coreclr/jit/emitxarch.cpp
Lines 11174 to 11177 in 8cb57ab
| // Trim out any callee-trashed registers from the live set. | |
| regMaskTP savedSet = emitGetGCRegsSavedOrModified(params.methHnd); | |
| regMaskTP gcrefRegs = params.gcrefRegs & savedSet; | |
| regMaskTP byrefRegs = params.byrefRegs & savedSet; |
For jumps this does not really make sense. We should be able to avoid some unnecessary GC transitions by avoiding changing the gcref regs/byref regs when params.isJump.
Copilot
Metadata
Metadata
Assignees
Labels
area-CodeGen-coreclrCLR JIT compiler in src/coreclr/src/jit and related components such as SuperPMICLR JIT compiler in src/coreclr/src/jit and related components such as SuperPMI