diff src/cpu/x86/vm/assembler_x86.hpp @ 775:93c14e5562c4

6823354: Add intrinsics for {Integer,Long}.{numberOfLeadingZeros,numberOfTrailingZeros}() Summary: These methods can be instrinsified by using bit scan, bit test, and population count instructions. Reviewed-by: kvn, never
author twisti
date Wed, 06 May 2009 00:27:52 -0700
parents e5b0439ef4ae
children 62001a362ce9
line wrap: on
line diff
--- a/src/cpu/x86/vm/assembler_x86.hpp	Tue May 05 11:02:10 2009 -0700
+++ b/src/cpu/x86/vm/assembler_x86.hpp	Wed May 06 00:27:52 2009 -0700
@@ -757,6 +757,14 @@
   void andpd(XMMRegister dst, Address src);
   void andpd(XMMRegister dst, XMMRegister src);
 
+  void bsfl(Register dst, Register src);
+  void bsrl(Register dst, Register src);
+
+#ifdef _LP64
+  void bsfq(Register dst, Register src);
+  void bsrq(Register dst, Register src);
+#endif
+
   void bswapl(Register reg);
 
   void bswapq(Register reg);
@@ -1061,6 +1069,12 @@
 
   void lock();
 
+  void lzcntl(Register dst, Register src);
+
+#ifdef _LP64
+  void lzcntq(Register dst, Register src);
+#endif
+
   enum Membar_mask_bits {
     StoreStore = 1 << 3,
     LoadStore  = 1 << 2,