9dddb49288
Signed-off-by: Ian Moffett <ian@mirocom.org>
23 lines
459 B
Plaintext
23 lines
459 B
Plaintext
//
|
|
// Copyright (c) 2026, Chloe M.
|
|
// Provided under the BSD-3 clause
|
|
//
|
|
|
|
//
|
|
// Operations can only be performed on registers but not
|
|
// variables. Register names follow this convention:
|
|
// -----------------------------------------------------
|
|
// r<bitwidth>:name
|
|
//
|
|
pub proc log2(v : u64) -> u64 begin
|
|
r64:cnt = 0;
|
|
r64:tmp = v;
|
|
|
|
while (r64:tmp != 0) begin
|
|
r64:tmp >>= 1;
|
|
r64:cnt += 1;
|
|
end
|
|
|
|
return r64:cnt;
|
|
end
|