File: types.ha

package info (click to toggle)
hare 0.26.0-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 7,352 kB
  • sloc: asm: 1,374; makefile: 123; sh: 117; lisp: 101
file content (17 lines) | stat: -rw-r--r-- 671 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
// SPDX-License-Identifier: MPL-2.0
// (c) Hare authors <https://harelang.org>

// A big integer is stored in an array of words. The first word holds
// information about the effective size of the big integer. The subsequend
// words encode the value in little-endian order. The [[WORD_BITMASK]] masks the
// bits that are actually used to store the value in each word.
export type word = u32;

// Number of bits that are used for storing the value in a word.
export def WORD_BITSZ: u32 = 31;

// Bitmask for bits that are used for storing the value in a word.
export def WORD_BITMASK: word = 0x7fffffff;

// full_bitlen(word) == 1 << WORD_SHIFT
def WORD_SHIFT: u32 = 5;