diff --git a/src/coreclr/jit/codegenarm64.cpp b/src/coreclr/jit/codegenarm64.cpp index f5ac76f6c50067..5b680d4ce57702 100644 --- a/src/coreclr/jit/codegenarm64.cpp +++ b/src/coreclr/jit/codegenarm64.cpp @@ -2161,7 +2161,9 @@ void CodeGen::instGen_Set_Reg_To_Base_Plus_Imm(emitAttr size, else { instGen_Set_Reg_To_Imm(size, dstReg, imm); - GetEmitter()->emitIns_R_R_R(INS_add, size, dstReg, dstReg, baseReg); + // baseReg might be SP, which must be reg2 + // an "add R0, R1, SP" is not encodable + GetEmitter()->emitIns_R_R_R(INS_add, size, dstReg, baseReg, dstReg); } }