Skip to content

Commit

Permalink
Kill REG_PROFILER_RET_SCRATCH (dotnet#37679)
Browse files Browse the repository at this point in the history
  • Loading branch information
CarolEidt authored Jun 12, 2020
1 parent a70a2db commit b179e19
Show file tree
Hide file tree
Showing 2 changed files with 5 additions and 1 deletion.
2 changes: 2 additions & 0 deletions src/coreclr/src/jit/lsraarm.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -492,6 +492,8 @@ int LinearScan::BuildNode(GenTree* tree)

case GT_RETURN:
srcCount = BuildReturn(tree);
killMask = getKillSetForReturn();
BuildDefsWithKills(tree, 0, RBM_NONE, killMask);
break;

case GT_RETFILT:
Expand Down
4 changes: 3 additions & 1 deletion src/coreclr/src/jit/target.h
Original file line number Diff line number Diff line change
Expand Up @@ -1103,7 +1103,9 @@ typedef unsigned char regNumberSmall;
// The registers trashed by profiler enter/leave/tailcall hook
// See vm\arm\asmhelpers.asm for more details.
#define RBM_PROFILER_ENTER_TRASH RBM_NONE
#define RBM_PROFILER_LEAVE_TRASH RBM_NONE
// While REG_PROFILER_RET_SCRATCH is not trashed by the method, the register allocator must
// consider it killed by the return.
#define RBM_PROFILER_LEAVE_TRASH RBM_PROFILER_RET_SCRATCH
#define RBM_PROFILER_TAILCALL_TRASH RBM_NONE

// Which register are int and long values returned in ?
Expand Down

0 comments on commit b179e19

Please sign in to comment.