Commit d9fc8a3
committed
fixup: version profiles per .NET major, port minimal set to .NET 11
Move the profiles to fixup/<major>/profile/{minimal,perf}; patch_runtime.sh
detects the major from eng/Versions.props of the cloned runtime and errors
out clearly when the requested profile does not exist for that version (perf
exists only for 10 so far).
.NET 11 minimal set: fixups 11 and 14 apply unchanged. splitcodedata (20) is
rewritten for v11, where upstream already provides everything the v10 fixup
built by hand: the CorInfoReloc::RISCV64_PCREL_I/S paired relocations, their
VM/superpmi handling, the ILC RelocType plumbing and the ElfObjectWriter
R_RISCV_PCREL_HI20/LO12 emission with pcrel labels and RELA addends. What
remains is the JIT policy: keep data chunks out of the hot code allocation in
eeAllocMem (and report relocs for data with code pointers), stop marking
emitIns_R_C instructions as bound, and emit auipc+ld/addi with zero
immediates plus a RISCV64_PCREL_I relocation in emitOutputInstr_OptsRc. The
stubdispatch fixup (22) is retargeted to the renamed
RhpUniversalTransitionTailCall. All four apply cleanly on v11.0.100.
Signed-off-by: Maxim Menshikov <maksim.menshikov@nethermind.io>1 parent 117b797 commit d9fc8a3
23 files changed
Lines changed: 669 additions & 4 deletions
File tree
- fixup
- 10/profile
- minimal
- perf
- 11/profile/minimal
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
0 commit comments