Mercurial > hg > graal-compiler
comparison src/cpu/x86/vm/assembler_x86.cpp @ 8124:5fc51c1ecdeb
Merge.
author | Thomas Wuerthinger <thomas.wuerthinger@oracle.com> |
---|---|
date | Tue, 05 Mar 2013 23:44:54 +0100 |
parents | 3ac7d10a6572 91a23b11d8dc |
children | 89e4d67fdd2a |
comparison
equal
deleted
inserted
replaced
7943:a413bcd552a4 | 8124:5fc51c1ecdeb |
---|---|
34 #include "runtime/interfaceSupport.hpp" | 34 #include "runtime/interfaceSupport.hpp" |
35 #include "runtime/objectMonitor.hpp" | 35 #include "runtime/objectMonitor.hpp" |
36 #include "runtime/os.hpp" | 36 #include "runtime/os.hpp" |
37 #include "runtime/sharedRuntime.hpp" | 37 #include "runtime/sharedRuntime.hpp" |
38 #include "runtime/stubRoutines.hpp" | 38 #include "runtime/stubRoutines.hpp" |
39 #ifndef SERIALGC | 39 #include "utilities/macros.hpp" |
40 #if INCLUDE_ALL_GCS | |
40 #include "gc_implementation/g1/g1CollectedHeap.inline.hpp" | 41 #include "gc_implementation/g1/g1CollectedHeap.inline.hpp" |
41 #include "gc_implementation/g1/g1SATBCardTableModRefBS.hpp" | 42 #include "gc_implementation/g1/g1SATBCardTableModRefBS.hpp" |
42 #include "gc_implementation/g1/heapRegion.hpp" | 43 #include "gc_implementation/g1/heapRegion.hpp" |
43 #endif | 44 #endif // INCLUDE_ALL_GCS |
44 | 45 |
45 #ifdef PRODUCT | 46 #ifdef PRODUCT |
46 #define BLOCK_COMMENT(str) /* nothing */ | 47 #define BLOCK_COMMENT(str) /* nothing */ |
47 #define STOP(error) stop(error) | 48 #define STOP(error) stop(error) |
48 #else | 49 #else |
2267 assert(VM_Version::supports_avx() && !vector256 || VM_Version::supports_avx2(), "256 bit integer vectors requires AVX2"); | 2268 assert(VM_Version::supports_avx() && !vector256 || VM_Version::supports_avx2(), "256 bit integer vectors requires AVX2"); |
2268 emit_vex_arith(0x67, dst, nds, src, VEX_SIMD_66, vector256); | 2269 emit_vex_arith(0x67, dst, nds, src, VEX_SIMD_66, vector256); |
2269 } | 2270 } |
2270 | 2271 |
2271 void Assembler::vpermq(XMMRegister dst, XMMRegister src, int imm8, bool vector256) { | 2272 void Assembler::vpermq(XMMRegister dst, XMMRegister src, int imm8, bool vector256) { |
2272 int encode = simd_prefix_and_encode(dst, xnoreg, src, VEX_SIMD_66, VEX_OPCODE_0F_3A, true, vector256); | 2273 assert(VM_Version::supports_avx2(), ""); |
2273 emit_int8(0x00); | 2274 int encode = simd_prefix_and_encode(dst, xnoreg, src, VEX_SIMD_66, VEX_OPCODE_0F_3A, true, vector256); |
2274 emit_int8(0xC0 | encode); | 2275 emit_int8(0x00); |
2275 emit_int8(imm8); | 2276 emit_int8(0xC0 | encode); |
2277 emit_int8(imm8); | |
2276 } | 2278 } |
2277 | 2279 |
2278 void Assembler::pcmpestri(XMMRegister dst, Address src, int imm8) { | 2280 void Assembler::pcmpestri(XMMRegister dst, Address src, int imm8) { |
2279 assert(VM_Version::supports_sse4_2(), ""); | 2281 assert(VM_Version::supports_sse4_2(), ""); |
2280 InstructionMark im(this); | 2282 InstructionMark im(this); |