diff --git a/eng/pipelines/common/xplat-setup.yml b/eng/pipelines/common/xplat-setup.yml index 39676f8fd9b292..9fb8d0395e71cc 100644 --- a/eng/pipelines/common/xplat-setup.yml +++ b/eng/pipelines/common/xplat-setup.yml @@ -156,6 +156,9 @@ jobs: container: ${{ parameters.container }} ${{ if eq(parameters.jobParameters.pool, '') }}: + # N.B.: We should always be building on the latest available version of our build platform. + # Each of these queues should be the latest version or have a tracking issue if the latest version + # does not work for some reason. pool: # Public Linux Build Pool ${{ if and(or(in(parameters.osGroup, 'linux', 'freebsd', 'android', 'tizen'), eq(parameters.jobParameters.hostedOs, 'linux')), eq(variables['System.TeamProject'], 'public')) }}: @@ -170,7 +173,7 @@ jobs: # OSX Public Build Pool (we don't have on-prem OSX BuildPool). ${{ if and(in(parameters.osGroup, 'osx', 'maccatalyst', 'ios', 'iossimulator', 'tvos', 'tvossimulator'), eq(variables['System.TeamProject'], 'public')) }}: - vmImage: 'macos-13' + vmImage: 'macos-15' # OSX Internal Pool ${{ if and(in(parameters.osGroup, 'osx', 'maccatalyst', 'ios', 'iossimulator', 'tvos', 'tvossimulator'), ne(variables['System.TeamProject'], 'public')) }}: diff --git a/src/coreclr/vm/amd64/jithelpers_fastwritebarriers.S b/src/coreclr/vm/amd64/jithelpers_fastwritebarriers.S index f987751bdcb358..cf9f149e374899 100644 --- a/src/coreclr/vm/amd64/jithelpers_fastwritebarriers.S +++ b/src/coreclr/vm/amd64/jithelpers_fastwritebarriers.S @@ -39,10 +39,10 @@ PATCH_LABEL JIT_WriteBarrier_PreGrow64_Patch_Label_CardTable shr rdi, 0x0B cmp byte ptr [rdi + rax], 0xFF .byte 0x75, 0x02 - // jne UpdateCardTable_PreGrow64 + // jne LOCAL_LABEL(UpdateCardTable_PreGrow64) REPRET - UpdateCardTable_PreGrow64: + LOCAL_LABEL(UpdateCardTable_PreGrow64): mov byte ptr [rdi + rax], 0xFF #ifdef FEATURE_MANUALLY_MANAGED_CARD_BUNDLES @@ -57,17 +57,17 @@ PATCH_LABEL JIT_WriteBarrier_PreGrow64_Patch_Label_CardBundleTable cmp byte ptr [rdi + rax], 0xFF .byte 0x75, 0x02 - // jne UpdateCardBundle_PreGrow64 + // jne LOCAL_LABEL(UpdateCardBundle_PreGrow64) REPRET - UpdateCardBundle_PreGrow64: + LOCAL_LABEL(UpdateCardBundle_PreGrow64): mov byte ptr [rdi + rax], 0xFF #endif ret .balign 16 - Exit_PreGrow64: +PATCH_LABEL Exit_PreGrow64 REPRET LEAF_END_MARKED JIT_WriteBarrier_PreGrow64, _TEXT @@ -124,10 +124,10 @@ PATCH_LABEL JIT_WriteBarrier_PostGrow64_Patch_Label_CardTable shr rdi, 0x0B cmp byte ptr [rdi + rax], 0xFF .byte 0x75, 0x02 - // jne UpdateCardTable_PostGrow64 + // jne LOCAL_LABEL(UpdateCardTable_PostGrow64) REPRET - UpdateCardTable_PostGrow64: + LOCAL_LABEL(UpdateCardTable_PostGrow64): mov byte ptr [rdi + rax], 0xFF #ifdef FEATURE_MANUALLY_MANAGED_CARD_BUNDLES @@ -142,17 +142,17 @@ PATCH_LABEL JIT_WriteBarrier_PostGrow64_Patch_Label_CardBundleTable cmp byte ptr [rdi + rax], 0xFF .byte 0x75, 0x02 - // jne UpdateCardBundle_PostGrow64 + // jne LOCAL_LABEL(UpdateCardBundle_PostGrow64) REPRET - UpdateCardBundle_PostGrow64: + LOCAL_LABEL(UpdateCardBundle_PostGrow64): mov byte ptr [rdi + rax], 0xFF #endif ret .balign 16 - Exit_PostGrow64: +PATCH_LABEL Exit_PostGrow64 REPRET LEAF_END_MARKED JIT_WriteBarrier_PostGrow64, _TEXT @@ -183,10 +183,10 @@ PATCH_LABEL JIT_WriteBarrier_SVR64_PatchLabel_CardTable cmp byte ptr [rdi + rax], 0xFF .byte 0x75, 0x02 - // jne UpdateCardTable_SVR64 + // jne LOCAL_LABEL(UpdateCardTable_SVR64) REPRET - UpdateCardTable_SVR64: + LOCAL_LABEL(UpdateCardTable_SVR64): mov byte ptr [rdi + rax], 0xFF #ifdef FEATURE_MANUALLY_MANAGED_CARD_BUNDLES @@ -200,10 +200,10 @@ PATCH_LABEL JIT_WriteBarrier_SVR64_PatchLabel_CardBundleTable cmp byte ptr [rdi + rax], 0xFF .byte 0x75, 0x02 - // jne UpdateCardBundle_SVR64 + // jne LOCAL_LABEL(UpdateCardBundle_SVR64) REPRET - UpdateCardBundle_SVR64: + LOCAL_LABEL(UpdateCardBundle_SVR64): mov byte ptr [rdi + rax], 0xFF #endif @@ -233,46 +233,46 @@ PATCH_LABEL JIT_WriteBarrier_Byte_Region64_Patch_Label_RegionShrDest // Check whether the region we're storing into is gen 0 - nothing to do in this case cmp byte ptr [rdi + rax], 0 .byte 0x75, 0x04 - //jne NotGen0_Byte_Region64 + //jne LOCAL_LABEL(NotGen0_Byte_Region64) REPRET NOP_2_BYTE // padding for alignment of constant - NotGen0_Byte_Region64: + LOCAL_LABEL(NotGen0_Byte_Region64): PATCH_LABEL JIT_WriteBarrier_Byte_Region64_Patch_Label_Lower movabs r9, 0xF0F0F0F0F0F0F0F0 cmp rsi, r9 .byte 0x73, 0x01 - // jae NotLow_Byte_Region64 + // jae LOCAL_LABEL(NotLow_Byte_Region64) ret - NotLow_Byte_Region64: + LOCAL_LABEL(NotLow_Byte_Region64): PATCH_LABEL JIT_WriteBarrier_Byte_Region64_Patch_Label_Upper movabs r9, 0xF0F0F0F0F0F0F0F0 cmp rsi, r9 .byte 0x72, 0x02 - // jb NotHigh_Byte_Region64 + // jb LOCAL_LABEL(NotHigh_Byte_Region64) REPRET - NotHigh_Byte_Region64: + LOCAL_LABEL(NotHigh_Byte_Region64): PATCH_LABEL JIT_WriteBarrier_Byte_Region64_Patch_Label_RegionShrSrc shr rsi, 0x16 // compute region index mov dl, [rsi + rax] cmp dl, [rdi + rax] .byte 0x72, 0x03 - // jb IsOldToYoung_Byte_Region64 + // jb LOCAL_LABEL(IsOldToYoung_Byte_Region64) REPRET nop - IsOldToYoung_Byte_Region64: + LOCAL_LABEL(IsOldToYoung_Byte_Region64): PATCH_LABEL JIT_WriteBarrier_Byte_Region64_Patch_Label_CardTable movabs rax, 0xF0F0F0F0F0F0F0F0 shr r8, 0xB cmp byte ptr [r8 + rax], 0xFF .byte 0x75, 0x02 - // jne UpdateCardTable_Byte_Region64 + // jne LOCAL_LABEL(UpdateCardTable_Byte_Region64) REPRET - UpdateCardTable_Byte_Region64: + LOCAL_LABEL(UpdateCardTable_Byte_Region64): mov byte ptr [r8 + rax], 0xFF #ifdef FEATURE_MANUALLY_MANAGED_CARD_BUNDLES shr r8, 0x0A @@ -280,10 +280,10 @@ PATCH_LABEL JIT_WriteBarrier_Byte_Region64_Patch_Label_CardBundleTable movabs rax, 0xF0F0F0F0F0F0F0F0 cmp byte ptr [r8 + rax], 0xFF .byte 0x75, 0x02 - // jne UpdateCardBundleTable_Byte_Region64 + // jne LOCAL_LABEL(UpdateCardBundleTable_Byte_Region64) REPRET - UpdateCardBundleTable_Byte_Region64: + LOCAL_LABEL(UpdateCardBundleTable_Byte_Region64): mov byte ptr [r8 + rax], 0xFF #endif ret @@ -308,36 +308,36 @@ PATCH_LABEL JIT_WriteBarrier_Bit_Region64_Patch_Label_RegionShrDest // Check whether the region we're storing into is gen 0 - nothing to do in this case cmp byte ptr [rdi + rax], 0 .byte 0x75, 0x04 - //jne NotGen0_Bit_Region64 + //jne LOCAL_LABEL(NotGen0_Bit_Region64) REPRET NOP_2_BYTE // padding for alignment of constant - NotGen0_Bit_Region64: + LOCAL_LABEL(NotGen0_Bit_Region64): PATCH_LABEL JIT_WriteBarrier_Bit_Region64_Patch_Label_Lower movabs r9, 0xF0F0F0F0F0F0F0F0 cmp rsi, r9 .byte 0x73, 0x01 - // jae NotLow_Bit_Region64 + // jae LOCAL_LABEL(NotLow_Bit_Region64) ret - NotLow_Bit_Region64: + LOCAL_LABEL(NotLow_Bit_Region64): PATCH_LABEL JIT_WriteBarrier_Bit_Region64_Patch_Label_Upper movabs r9, 0xF0F0F0F0F0F0F0F0 cmp rsi, r9 .byte 0x72, 0x02 - // jb NotHigh_Bit_Region64 + // jb LOCAL_LABEL(NotHigh_Bit_Region64) REPRET - NotHigh_Bit_Region64: + LOCAL_LABEL(NotHigh_Bit_Region64): PATCH_LABEL JIT_WriteBarrier_Bit_Region64_Patch_Label_RegionShrSrc shr rsi, 0x16 // compute region index mov dl, [rsi + rax] cmp dl, [rdi + rax] .byte 0x72, 0x03 - // jb IsOldToYoung_Bit_Region64 + // jb LOCAL_LABEL(IsOldToYoung_Bit_Region64) REPRET nop - IsOldToYoung_Bit_Region64: + LOCAL_LABEL(IsOldToYoung_Bit_Region64): PATCH_LABEL JIT_WriteBarrier_Bit_Region64_Patch_Label_CardTable movabs rax, 0xF0F0F0F0F0F0F0F0 @@ -349,10 +349,10 @@ PATCH_LABEL JIT_WriteBarrier_Bit_Region64_Patch_Label_CardTable shl dl, cl test byte ptr [r8 + rax], dl .byte 0x74, 0x02 - // je UpdateCardTable_Bit_Region64 + // je LOCAL_LABEL(UpdateCardTable_Bit_Region64) REPRET - UpdateCardTable_Bit_Region64: + LOCAL_LABEL(UpdateCardTable_Bit_Region64): lock or byte ptr [r8 + rax], dl #ifdef FEATURE_MANUALLY_MANAGED_CARD_BUNDLES PATCH_LABEL JIT_WriteBarrier_Bit_Region64_Patch_Label_CardBundleTable @@ -360,10 +360,10 @@ PATCH_LABEL JIT_WriteBarrier_Bit_Region64_Patch_Label_CardBundleTable shr r8, 0x0A cmp byte ptr [r8 + rax], 0xFF .byte 0x75, 0x02 - // jne UpdateCardBundleTable_Bit_Region64 + // jne LOCAL_LABEL(UpdateCardBundleTable_Bit_Region64) REPRET - UpdateCardBundleTable_Bit_Region64: + LOCAL_LABEL(UpdateCardBundleTable_Bit_Region64): mov byte ptr [r8 + rax], 0xFF #endif ret @@ -397,10 +397,10 @@ PATCH_LABEL JIT_WriteBarrier_WriteWatch_PreGrow64_Patch_Label_Lower add rax, r10 cmp byte ptr [rax], 0x0 .byte 0x75, 0x03 - // jne CheckCardTable_WriteWatch_PreGrow64 + // jne LOCAL_LABEL(CheckCardTable_WriteWatch_PreGrow64) mov byte ptr [rax], 0xFF - CheckCardTable_WriteWatch_PreGrow64: + LOCAL_LABEL(CheckCardTable_WriteWatch_PreGrow64): // Check the lower ephemeral region bound. cmp rsi, r11 @@ -419,10 +419,10 @@ PATCH_LABEL JIT_WriteBarrier_WriteWatch_PreGrow64_Patch_Label_CardTable movabs rax, 0xF0F0F0F0F0F0F0F0 cmp byte ptr [rdi + rax], 0xFF .byte 0x75, 0x02 - // jne UpdateCardTable_WriteWatch_PreGrow64 + // jne LOCAL_LABEL(UpdateCardTable_WriteWatch_PreGrow64) REPRET - UpdateCardTable_WriteWatch_PreGrow64: + LOCAL_LABEL(UpdateCardTable_WriteWatch_PreGrow64): mov byte ptr [rdi + rax], 0xFF #ifdef FEATURE_MANUALLY_MANAGED_CARD_BUNDLES @@ -434,17 +434,17 @@ PATCH_LABEL JIT_WriteBarrier_WriteWatch_PreGrow64_Patch_Label_CardBundleTable cmp byte ptr [rdi + rax], 0xFF .byte 0x75, 0x02 - // jne UpdateCardBundle_WriteWatch_PreGrow64 + // jne LOCAL_LABEL(UpdateCardBundle_WriteWatch_PreGrow64) REPRET - UpdateCardBundle_WriteWatch_PreGrow64: + LOCAL_LABEL(UpdateCardBundle_WriteWatch_PreGrow64): mov byte ptr [rdi + rax], 0xFF #endif ret .balign 16 - Exit_WriteWatch_PreGrow64: +PATCH_LABEL Exit_WriteWatch_PreGrow64 REPRET LEAF_END_MARKED JIT_WriteBarrier_WriteWatch_PreGrow64, _TEXT @@ -475,13 +475,13 @@ PATCH_LABEL JIT_WriteBarrier_WriteWatch_PostGrow64_Patch_Label_Lower add rax, r10 cmp byte ptr [rax], 0x0 .byte 0x75, 0x06 - // jne CheckCardTable_WriteWatch_PostGrow64 + // jne LOCAL_LABEL(CheckCardTable_WriteWatch_PostGrow64) mov byte ptr [rax], 0xFF NOP_3_BYTE // padding for alignment of constant // Check the lower and upper ephemeral region bounds - CheckCardTable_WriteWatch_PostGrow64: + LOCAL_LABEL(CheckCardTable_WriteWatch_PostGrow64): cmp rsi, r11 #ifdef FEATURE_MANUALLY_MANAGED_CARD_BUNDLES @@ -514,10 +514,10 @@ PATCH_LABEL JIT_WriteBarrier_WriteWatch_PostGrow64_Patch_Label_CardTable shr rdi, 0x0B cmp byte ptr [rdi + rax], 0xFF .byte 0x75, 0x02 - // jne UpdateCardTable_WriteWatch_PostGrow64 + // jne LOCAL_LABEL(UpdateCardTable_WriteWatch_PostGrow64) REPRET - UpdateCardTable_WriteWatch_PostGrow64: + LOCAL_LABEL(UpdateCardTable_WriteWatch_PostGrow64): mov byte ptr [rdi + rax], 0xFF #ifdef FEATURE_MANUALLY_MANAGED_CARD_BUNDLES @@ -529,16 +529,16 @@ PATCH_LABEL JIT_WriteBarrier_WriteWatch_PostGrow64_Patch_Label_CardBundleTable cmp byte ptr [rdi + rax], 0xFF .byte 0x75, 0x02 - // jne UpdateCardBundle_WriteWatch_PostGrow64 + // jne LOCAL_LABEL(UpdateCardBundle_WriteWatch_PostGrow64) REPRET - UpdateCardBundle_WriteWatch_PostGrow64: + LOCAL_LABEL(UpdateCardBundle_WriteWatch_PostGrow64): mov byte ptr [rdi + rax], 0xFF #endif ret .balign 16 - Exit_WriteWatch_PostGrow64: +PATCH_LABEL Exit_WriteWatch_PostGrow64 REPRET LEAF_END_MARKED JIT_WriteBarrier_WriteWatch_PostGrow64, _TEXT @@ -578,17 +578,17 @@ PATCH_LABEL JIT_WriteBarrier_WriteWatch_SVR64_PatchLabel_CardTable add rax, r10 cmp byte ptr [rax], 0x0 .byte 0x75, 0x03 - // jne CheckCardTable_WriteWatch_SVR64 + // jne LOCAL_LABEL(CheckCardTable_WriteWatch_SVR64) mov byte ptr [rax], 0xFF - CheckCardTable_WriteWatch_SVR64: + LOCAL_LABEL(CheckCardTable_WriteWatch_SVR64): shr rdi, 0x0B cmp byte ptr [rdi + r11], 0xFF .byte 0x75, 0x02 - // jne UpdateCardTable_WriteWatch_SVR64 + // jne LOCAL_LABEL(UpdateCardTable_WriteWatch_SVR64) REPRET - UpdateCardTable_WriteWatch_SVR64: + LOCAL_LABEL(UpdateCardTable_WriteWatch_SVR64): mov byte ptr [rdi + r11], 0xFF #ifdef FEATURE_MANUALLY_MANAGED_CARD_BUNDLES @@ -600,10 +600,10 @@ PATCH_LABEL JIT_WriteBarrier_WriteWatch_SVR64_PatchLabel_CardBundleTable shr rdi, 0x0A cmp byte ptr [rdi + r11], 0xFF .byte 0x75, 0x02 - // jne UpdateCardBundle_WriteWatch_SVR64 + // jne LOCAL_LABEL(UpdateCardBundle_WriteWatch_SVR64) REPRET - UpdateCardBundle_WriteWatch_SVR64: + LOCAL_LABEL(UpdateCardBundle_WriteWatch_SVR64): mov byte ptr [rdi + r11], 0xFF #endif @@ -632,57 +632,57 @@ PATCH_LABEL JIT_WriteBarrier_WriteWatch_Byte_Region64_Patch_Label_RegionShrDest shr rdi, 0x16 // compute region index cmp byte ptr [rax], 0x0 .byte 0x75, 0x03 - // jne CheckGen0_WriteWatch_Byte_Region64 + // jne LOCAL_LABEL(CheckGen0_WriteWatch_Byte_Region64) mov byte ptr [rax], 0xFF - CheckGen0_WriteWatch_Byte_Region64: + LOCAL_LABEL(CheckGen0_WriteWatch_Byte_Region64): PATCH_LABEL JIT_WriteBarrier_WriteWatch_Byte_Region64_Patch_Label_RegionToGeneration mov rax, 0xF0F0F0F0F0F0F0F0 // Check whether the region we're storing into is gen 0 - nothing to do in this case cmp byte ptr [rdi + rax], 0 .byte 0x75, 0x08 - // jne NotGen0_WriteWatch_Byte_Region64 + // jne LOCAL_LABEL(NotGen0_WriteWatch_Byte_Region64) REPRET NOP_2_BYTE // padding for alignment of constant NOP_2_BYTE // padding for alignment of constant NOP_2_BYTE // padding for alignment of constant - NotGen0_WriteWatch_Byte_Region64: + LOCAL_LABEL(NotGen0_WriteWatch_Byte_Region64): PATCH_LABEL JIT_WriteBarrier_WriteWatch_Byte_Region64_Patch_Label_Lower movabs r9, 0xF0F0F0F0F0F0F0F0 cmp rsi, r9 .byte 0x73, 0x01 - // jae NotLow_WriteWatch_Byte_Region64 + // jae LOCAL_LABEL(NotLow_WriteWatch_Byte_Region64) ret - NotLow_WriteWatch_Byte_Region64: + LOCAL_LABEL(NotLow_WriteWatch_Byte_Region64): PATCH_LABEL JIT_WriteBarrier_WriteWatch_Byte_Region64_Patch_Label_Upper mov r9, 0xF0F0F0F0F0F0F0F0 cmp rsi, r9 .byte 0x72, 0x02 - // jb NotHigh_WriteWatch_Byte_Region64 + // jb LOCAL_LABEL(NotHigh_WriteWatch_Byte_Region64) REPRET - NotHigh_WriteWatch_Byte_Region64: + LOCAL_LABEL(NotHigh_WriteWatch_Byte_Region64): PATCH_LABEL JIT_WriteBarrier_WriteWatch_Byte_Region64_Patch_Label_RegionShrSrc shr rsi, 0x16 // compute region index mov dl, [rsi + rax] cmp dl, [rdi + rax] .byte 0x72, 0x03 - // jb IsOldToYoung_WriteWatch_Byte_Region64 + // jb LOCAL_LABEL(IsOldToYoung_WriteWatch_Byte_Region64) REPRET nop - IsOldToYoung_WriteWatch_Byte_Region64: + LOCAL_LABEL(IsOldToYoung_WriteWatch_Byte_Region64): PATCH_LABEL JIT_WriteBarrier_WriteWatch_Byte_Region64_Patch_Label_CardTable mov rax, 0xF0F0F0F0F0F0F0F0 shr r8, 0xB cmp byte ptr [r8 + rax], 0xFF .byte 0x75, 0x02 - // jne UpdateCardTable_WriteWatch_Byte_Region64 + // jne LOCAL_LABEL(UpdateCardTable_WriteWatch_Byte_Region64) REPRET - UpdateCardTable_WriteWatch_Byte_Region64: + LOCAL_LABEL(UpdateCardTable_WriteWatch_Byte_Region64): mov byte ptr [r8 + rax], 0xFF #ifdef FEATURE_MANUALLY_MANAGED_CARD_BUNDLES shr r8, 0x0A @@ -690,10 +690,10 @@ PATCH_LABEL JIT_WriteBarrier_WriteWatch_Byte_Region64_Patch_Label_CardBundleTabl mov rax, 0xF0F0F0F0F0F0F0F0 cmp byte ptr [r8 + rax], 0xFF .byte 0x75, 0x02 - // jne UpdateCardBundleTable_WriteWatch_Byte_Region64 + // jne LOCAL_LABEL(UpdateCardBundleTable_WriteWatch_Byte_Region64) REPRET - UpdateCardBundleTable_WriteWatch_Byte_Region64: + LOCAL_LABEL(UpdateCardBundleTable_WriteWatch_Byte_Region64): mov byte ptr [r8 + rax], 0xFF #endif ret @@ -718,47 +718,47 @@ PATCH_LABEL JIT_WriteBarrier_WriteWatch_Bit_Region64_Patch_Label_RegionShrDest shr rdi, 0x16 // compute region index cmp byte ptr [rax], 0x0 .byte 0x75, 0x03 - // jne CheckGen0_WriteWatch_Bit_Region64 + // jne LOCAL_LABEL(CheckGen0_WriteWatch_Bit_Region64) mov byte ptr [rax], 0xFF - CheckGen0_WriteWatch_Bit_Region64: + LOCAL_LABEL(CheckGen0_WriteWatch_Bit_Region64): PATCH_LABEL JIT_WriteBarrier_WriteWatch_Bit_Region64_Patch_Label_RegionToGeneration mov rax, 0xF0F0F0F0F0F0F0F0 // Check whether the region we're storing into is gen 0 - nothing to do in this case cmp byte ptr [rdi + rax], 0 .byte 0x75, 0x08 - // jne NotGen0_WriteWatch_Bit_Region64 + // jne LOCAL_LABEL(NotGen0_WriteWatch_Bit_Region64) REPRET NOP_2_BYTE // padding for alignment of constant NOP_2_BYTE // padding for alignment of constant NOP_2_BYTE // padding for alignment of constant - NotGen0_WriteWatch_Bit_Region64: + LOCAL_LABEL(NotGen0_WriteWatch_Bit_Region64): PATCH_LABEL JIT_WriteBarrier_WriteWatch_Bit_Region64_Patch_Label_Lower movabs r9, 0xF0F0F0F0F0F0F0F0 cmp rsi, r9 .byte 0x73, 0x01 - // jae NotLow_WriteWatch_Bit_Region64 + // jae LOCAL_LABEL(NotLow_WriteWatch_Bit_Region64) ret - NotLow_WriteWatch_Bit_Region64: + LOCAL_LABEL(NotLow_WriteWatch_Bit_Region64): PATCH_LABEL JIT_WriteBarrier_WriteWatch_Bit_Region64_Patch_Label_Upper mov r9, 0xF0F0F0F0F0F0F0F0 cmp rsi, r9 .byte 0x72, 0x02 - // jb NotHigh_WriteWatch_Bit_Region64 + // jb LOCAL_LABEL(NotHigh_WriteWatch_Bit_Region64) REPRET - NotHigh_WriteWatch_Bit_Region64: + LOCAL_LABEL(NotHigh_WriteWatch_Bit_Region64): PATCH_LABEL JIT_WriteBarrier_WriteWatch_Bit_Region64_Patch_Label_RegionShrSrc shr rsi, 0x16 // compute region index mov dl, [rsi + rax] cmp dl, [rdi + rax] .byte 0x72, 0x03 - // jb IsOldToYoung_WriteWatch_Bit_Region64 + // jb LOCAL_LABEL(IsOldToYoung_WriteWatch_Bit_Region64) REPRET nop - IsOldToYoung_WriteWatch_Bit_Region64: + LOCAL_LABEL(IsOldToYoung_WriteWatch_Bit_Region64): PATCH_LABEL JIT_WriteBarrier_WriteWatch_Bit_Region64_Patch_Label_CardTable mov rax, 0xF0F0F0F0F0F0F0F0 @@ -770,10 +770,10 @@ PATCH_LABEL JIT_WriteBarrier_WriteWatch_Bit_Region64_Patch_Label_CardTable shl dl, cl test byte ptr [r8 + rax], dl .byte 0x74, 0x02 - // je UpdateCardTable_WriteWatch_Bit_Region64 + // je LOCAL_LABEL(UpdateCardTable_WriteWatch_Bit_Region64) REPRET - UpdateCardTable_WriteWatch_Bit_Region64: + LOCAL_LABEL(UpdateCardTable_WriteWatch_Bit_Region64): lock or byte ptr [r8 + rax], dl #ifdef FEATURE_MANUALLY_MANAGED_CARD_BUNDLES PATCH_LABEL JIT_WriteBarrier_WriteWatch_Bit_Region64_Patch_Label_CardBundleTable @@ -781,10 +781,10 @@ PATCH_LABEL JIT_WriteBarrier_WriteWatch_Bit_Region64_Patch_Label_CardBundleTable shr r8, 0x0A cmp byte ptr [r8 + rax], 0xFF .byte 0x75, 0x02 - // jne UpdateCardBundleTable_WriteWatch_Bit_Region64 + // jne LOCAL_LABEL(UpdateCardBundleTable_WriteWatch_Bit_Region64) REPRET - UpdateCardBundleTable_WriteWatch_Bit_Region64: + LOCAL_LABEL(UpdateCardBundleTable_WriteWatch_Bit_Region64): mov byte ptr [r8 + rax], 0xFF #endif ret diff --git a/src/tests/issues.targets b/src/tests/issues.targets index b246551a819603..d2280ccb3fca08 100644 --- a/src/tests/issues.targets +++ b/src/tests/issues.targets @@ -2617,6 +2617,15 @@ + + + https://github.com/dotnet/runtime/issues/121983 + + + https://github.com/dotnet/runtime/issues/121983 + + + https://github.com/dotnet/runtime/issues/82859