1 /* Copyright (C) 1999-2005 Henry Cejtin, Matthew Fluet, Suresh
2 * Jagannathan, and Stephen Weeks.
3 * Copyright (C) 1997-2000 NEC Research Institute.
5 * MLton is released under a BSD-style license.
6 * See the file MLton-LICENSE for details.
9 static inline bool isAligned (size_t a
, size_t b
) {
13 static inline bool isAlignedMax (uintmax_t a
, uintmax_t b
) {
17 static inline size_t alignDown (size_t a
, size_t b
) {
18 assert (b
>= 1 && b
== (b
& -b
));
20 assert (isAligned (a
, b
));
24 static inline uintmax_t alignMaxDown (uintmax_t a
, uintmax_t b
) {
25 assert (b
>= 1 && b
== (b
& -b
));
27 assert (isAlignedMax (a
, b
));
31 static inline size_t align (size_t a
, size_t b
) {
32 assert (b
>= 1 && b
== (b
& -b
));
35 assert (isAligned (a
, b
));
39 static inline uintmax_t alignMax (uintmax_t a
, uintmax_t b
) {
40 assert (b
>= 1 && b
== (b
& -b
));
43 assert (isAlignedMax (a
, b
));