Skip to content

Windows versions of clz #22

@numo68

Description

@numo68

I am trying to compile the code under Windows. After some tweaks it compiles, but the test accesses invalid memory - the
wheel = timeout_wheel(rem);
called with rem = 90 returns 4, with WHEEL_NUM == 4.

I think that the culprit is the implementation of clz32/64 function. This should mean "count leading zeros"; however, the _BitScanReverse finds a position of the most significant true bit. For a value 90 this is 6; it should however return 25. Changing the functions to return 31 - zeros and return 63 - zeros seems to fix this issue.

There is still some other problem - the test using {{{cfg3}}} does not seem to progress, still hunting this one.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions