summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authormskvortsov <mikhael.skvortsov@gmail.com>2017-05-20 17:51:54 +0300
committerJan Vorlicek <janvorli@microsoft.com>2017-05-20 07:51:54 -0700
commit4f8be95166a30ea7c0b1d6aed4ef424ee47c425a (patch)
tree313fb929ba7920587a4eff9fb1d7f571bafed16f /src
parent989d1a2872d469cba9cc600b07f26553a7beabbf (diff)
downloadcoreclr-4f8be95166a30ea7c0b1d6aed4ef424ee47c425a.tar.gz
coreclr-4f8be95166a30ea7c0b1d6aed4ef424ee47c425a.tar.bz2
coreclr-4f8be95166a30ea7c0b1d6aed4ef424ee47c425a.zip
Linux/x86: Fix clang 4.0 build (#11610)
Diffstat (limited to 'src')
-rw-r--r--src/jit/codegenxarch.cpp2
-rw-r--r--src/vm/i386/cgenx86.cpp9
2 files changed, 6 insertions, 5 deletions
diff --git a/src/jit/codegenxarch.cpp b/src/jit/codegenxarch.cpp
index 3ce0623391..c55e7a7bb0 100644
--- a/src/jit/codegenxarch.cpp
+++ b/src/jit/codegenxarch.cpp
@@ -6580,7 +6580,7 @@ void CodeGen::genIntToIntCast(GenTreePtr treeNode)
}
else
{
- typeMask = 0xFFFFFFFF80000000LL;
+ typeMask = ssize_t((int)0x80000000);
typeMin = INT_MIN;
typeMax = INT_MAX;
}
diff --git a/src/vm/i386/cgenx86.cpp b/src/vm/i386/cgenx86.cpp
index 0a276c0ff9..c75490babd 100644
--- a/src/vm/i386/cgenx86.cpp
+++ b/src/vm/i386/cgenx86.cpp
@@ -1454,7 +1454,7 @@ extern "C" DWORD __stdcall getcpuid(DWORD arg, unsigned char result[16])
" mov %%edx, 12(%[result])\n" \
: "=a"(eax) /*output in eax*/\
: "a"(arg), [result]"r"(result) /*inputs - arg in eax, result in any register*/\
- : "eax", "ebx", "ecx", "edx", "memory" /* registers that are clobbered, *result is clobbered */
+ : "ebx", "ecx", "edx", "memory" /* registers that are clobbered, *result is clobbered */
);
return eax;
}
@@ -1462,14 +1462,15 @@ extern "C" DWORD __stdcall getcpuid(DWORD arg, unsigned char result[16])
extern "C" DWORD __stdcall getextcpuid(DWORD arg1, DWORD arg2, unsigned char result[16])
{
DWORD eax;
+ DWORD ecx;
__asm(" cpuid\n" \
" mov %%eax, 0(%[result])\n" \
" mov %%ebx, 4(%[result])\n" \
" mov %%ecx, 8(%[result])\n" \
" mov %%edx, 12(%[result])\n" \
- : "=a"(eax) /*output in eax*/\
+ : "=a"(eax), "=c"(ecx) /*output in eax, ecx is rewritten*/\
: "c"(arg1), "a"(arg2), [result]"r"(result) /*inputs - arg1 in ecx, arg2 in eax, result in any register*/\
- : "eax", "ebx", "ecx", "edx", "memory" /* registers that are clobbered, *result is clobbered */
+ : "ebx", "edx", "memory" /* registers that are clobbered, *result is clobbered */
);
return eax;
}
@@ -1480,7 +1481,7 @@ extern "C" DWORD __stdcall xmmYmmStateSupport()
__asm(" xgetbv\n" \
: "=a"(eax) /*output in eax*/\
: "c"(0) /*inputs - 0 in ecx*/\
- : "eax", "edx" /* registers that are clobbered*/
+ : "edx" /* registers that are clobbered*/
);
// check OS has enabled both XMM and YMM state support
return ((eax & 0x06) == 0x06) ? 1 : 0;