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