diff options
author | Jan Vorlicek <janvorli@microsoft.com> | 2016-02-16 23:22:42 +0100 |
---|---|---|
committer | Jan Vorlicek <janvorli@microsoft.com> | 2016-02-16 23:22:42 +0100 |
commit | 0121102f14dfc8809292949108c21feaa5b9e67a (patch) | |
tree | 33bf94a46a279870e302665a09e627ef19c0d16a /src/vm/amd64/jithelpers_slow.S | |
parent | 9427f6c620450af16afd7cb95a08a1d846c7c79f (diff) | |
download | coreclr-0121102f14dfc8809292949108c21feaa5b9e67a.tar.gz coreclr-0121102f14dfc8809292949108c21feaa5b9e67a.tar.bz2 coreclr-0121102f14dfc8809292949108c21feaa5b9e67a.zip |
Fix INVALIDGCVALUE on Unix
The INVALIDGCVALUE value loaded into the R11 in the JIT_WriteBarrier_Debug
and JIT_ByRefWriteBarrier is sign extended to 0xFFFFFFFFCCCCCCCD instead of
being the 0x00000000CCCCCCCD.
It was introduced during the early days of CoreCLR porting when I have
misread the error message that I was getting from Clang when compiling
mov R11, 0xCCCCCCCD and didn't know yet that loading 64 bit number requires
using the movabs mnemonics.
Diffstat (limited to 'src/vm/amd64/jithelpers_slow.S')
-rw-r--r-- | src/vm/amd64/jithelpers_slow.S | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/src/vm/amd64/jithelpers_slow.S b/src/vm/amd64/jithelpers_slow.S index 5b67d14a60..4d18e4356c 100644 --- a/src/vm/amd64/jithelpers_slow.S +++ b/src/vm/amd64/jithelpers_slow.S @@ -45,7 +45,7 @@ LEAF_ENTRY JIT_WriteBarrier_Debug, _TEXT mov rax, [r10] cmp rax, r11 je DoneShadow - mov r11, INVALIDGCVALUE + movabs r11, INVALIDGCVALUE mov [r10], r11 jmp DoneShadow |