Mercurial > hg > truffle
diff graal/com.oracle.graal.hotspot.amd64/src/com/oracle/graal/hotspot/amd64/AMD64HotSpotBackendFactory.java @ 18415:6dc4f0be9a70
Add support of lzcnt and tzcnt
- support of lzcnt and tzcnt instructions,
- unit tests for lzcnt/tzcnt,
- ability to emit bsf/bsr in case lzcnt/tzcnt were turned off from the command line,
- tightening the stamps produced by ScanBitForward/ReverseNode nodes.
Contributed-By: Igor Veresov <igor.veresov@oracle.com>
author | Gilles Duboscq <duboscq@ssw.jku.at> |
---|---|
date | Wed, 19 Nov 2014 13:32:05 +0100 |
parents | 6faee2dcebbf |
children | 16e61bb57e90 |
line wrap: on
line diff
--- a/graal/com.oracle.graal.hotspot.amd64/src/com/oracle/graal/hotspot/amd64/AMD64HotSpotBackendFactory.java Wed Nov 19 13:10:24 2014 +0100 +++ b/graal/com.oracle.graal.hotspot.amd64/src/com/oracle/graal/hotspot/amd64/AMD64HotSpotBackendFactory.java Wed Nov 19 13:32:05 2014 +0100 @@ -85,6 +85,9 @@ if ((config.x86CPUFeatures & config.cpu3DNOWPREFETCH) != 0) { features.add(AMD64.CPUFeature.AMD_3DNOW_PREFETCH); } + if ((config.x86CPUFeatures & config.cpuBMI1) != 0) { + features.add(AMD64.CPUFeature.BMI1); + } return features; } @@ -237,15 +240,15 @@ } else { /* * System V Application Binary Interface, AMD64 Architecture Processor Supplement - * + * * Draft Version 0.96 - * + * * http://www.uclibc.org/docs/psABI-x86_64.pdf - * + * * 3.2.1 - * + * * ... - * + * * This subsection discusses usage of each register. Registers %rbp, %rbx and %r12 * through %r15 "belong" to the calling function and the called function is required to * preserve their values. In other words, a called function must preserve these