VirtualC64 v5.0 beta
Commodore 64 Emulator
Loading...
Searching...
No Matches
PeddleUtils.h
1// -----------------------------------------------------------------------------
2// This file is part of Peddle - A MOS 65xx CPU emulator
3//
4// Copyright (C) Dirk W. Hoffmann. www.dirkwhoffmann.de
5// Published under the terms of the MIT License
6// -----------------------------------------------------------------------------
7
8#pragma once
9
10#include <cassert>
11
12#define LO_BYTE(x) (u8)((x) & 0xFF)
13#define HI_BYTE(x) (u8)((x) >> 8)
14
15#define LO_HI(x,y) (u16)((y) << 8 | (x))
16#define HI_LO(x,y) (u16)((x) << 8 | (y))
17
18#ifdef _MSC_VER
19
20#define unreachable __assume(false)
21#define likely(x) (x)
22#define unlikely(x) (x)
23
24#else
25
26#define unreachable __builtin_unreachable()
27#define likely(x) __builtin_expect(!!(x), 1)
28#define unlikely(x) __builtin_expect(!!(x), 0)
29
30#endif
31
32#define fatalError assert(false); unreachable