src/hotspot/os_cpu/solaris_x86/count_trailing_zeros_solaris_x86.hpp
changeset 53244 9807daeb47c4
parent 47216 71c04702a3d5
equal deleted inserted replaced
53243:8bea4144b21c 53244:9807daeb47c4
     1 /*
     1 /*
     2  * Copyright (c) 2017, Oracle and/or its affiliates. All rights reserved.
     2  * Copyright (c) 2017, 2019, Oracle and/or its affiliates. All rights reserved.
     3  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
     3  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
     4  *
     4  *
     5  * This code is free software; you can redistribute it and/or modify it
     5  * This code is free software; you can redistribute it and/or modify it
     6  * under the terms of the GNU General Public License version 2 only, as
     6  * under the terms of the GNU General Public License version 2 only, as
     7  * published by the Free Software Foundation.
     7  * published by the Free Software Foundation.
    20  * or visit www.oracle.com if you need additional information or have any
    20  * or visit www.oracle.com if you need additional information or have any
    21  * questions.
    21  * questions.
    22  *
    22  *
    23  */
    23  */
    24 
    24 
    25 #ifndef OS_CPU_SOLARIS_X86_VM_COUNTTRAILINGZEROS_HPP
    25 #ifndef OS_CPU_SOLARIS_X86_COUNT_TRAILING_ZEROS_SOLARIS_X86_HPP
    26 #define OS_CPU_SOLARIS_X86_VM_COUNTTRAILINGZEROS_HPP
    26 #define OS_CPU_SOLARIS_X86_COUNT_TRAILING_ZEROS_SOLARIS_X86_HPP
    27 
    27 
    28 #include "utilities/globalDefinitions.hpp"
    28 #include "utilities/globalDefinitions.hpp"
    29 
    29 
    30 inline unsigned count_trailing_zeros(uintx x) {
    30 inline unsigned count_trailing_zeros(uintx x) {
    31   assert(x != 0, "precondition");
    31   assert(x != 0, "precondition");
    32   uintx result;
    32   uintx result;
    33   __asm__(" rep bsfq %1, %0" : "=r" (result) : "rm" (x));
    33   __asm__(" rep bsfq %1, %0" : "=r" (result) : "rm" (x));
    34   return result;
    34   return result;
    35 }
    35 }
    36 
    36 
    37 #endif // include guard
    37 #endif // OS_CPU_SOLARIS_X86_COUNT_TRAILING_ZEROS_SOLARIS_X86_HPP