blob: 8d4bdff15f951860e72d22489d1740f5c3d037f9 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
#pragma once
#include <stdint.h>
static inline uint32_t sign_extend(uint32_t word, uint32_t size)
{
const uint32_t mask = 1U << (size - 1);
return (word ^ mask) - mask;
}
static inline uint64_t sign_extend_64(uint64_t word, uint32_t size)
{
const uint64_t mask = 1ULL << (size - 1);
return (word ^ mask) - mask;
}
|