Mercurial > hg > truffle
comparison src/cpu/x86/vm/assembler_x86.cpp @ 2479:15c9a0e16269
7035713: 3DNow Prefetch Instruction Support
Summary: The upcoming processors from AMD are the first that support 3dnow prefetch without supporting the 3dnow instruction set.
Reviewed-by: kvn
Contributed-by: tom.deneau@amd.com
author | kvn |
---|---|
date | Mon, 11 Apr 2011 15:30:31 -0700 |
parents | d86923d96dca |
children | 0654ee04b214 732454aaf5cb |
comparison
equal
deleted
inserted
replaced
2478:328926869b15 | 2479:15c9a0e16269 |
---|---|
2315 emit_byte(0x18); | 2315 emit_byte(0x18); |
2316 emit_operand(rax, src); // 0, src | 2316 emit_operand(rax, src); // 0, src |
2317 } | 2317 } |
2318 | 2318 |
2319 void Assembler::prefetchr(Address src) { | 2319 void Assembler::prefetchr(Address src) { |
2320 NOT_LP64(assert(VM_Version::supports_3dnow(), "must support")); | 2320 NOT_LP64(assert(VM_Version::supports_3dnow_prefetch(), "must support")); |
2321 InstructionMark im(this); | 2321 InstructionMark im(this); |
2322 prefetch_prefix(src); | 2322 prefetch_prefix(src); |
2323 emit_byte(0x0D); | 2323 emit_byte(0x0D); |
2324 emit_operand(rax, src); // 0, src | 2324 emit_operand(rax, src); // 0, src |
2325 } | 2325 } |
2347 emit_byte(0x18); | 2347 emit_byte(0x18); |
2348 emit_operand(rbx, src); // 3, src | 2348 emit_operand(rbx, src); // 3, src |
2349 } | 2349 } |
2350 | 2350 |
2351 void Assembler::prefetchw(Address src) { | 2351 void Assembler::prefetchw(Address src) { |
2352 NOT_LP64(assert(VM_Version::supports_3dnow(), "must support")); | 2352 NOT_LP64(assert(VM_Version::supports_3dnow_prefetch(), "must support")); |
2353 InstructionMark im(this); | 2353 InstructionMark im(this); |
2354 prefetch_prefix(src); | 2354 prefetch_prefix(src); |
2355 emit_byte(0x0D); | 2355 emit_byte(0x0D); |
2356 emit_operand(rcx, src); // 1, src | 2356 emit_operand(rcx, src); // 1, src |
2357 } | 2357 } |