1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
#ifndef ULM_ALU_H
#define ULM_ALU_H

#include <stdbool.h>
#include <stdint.h>

#ifdef __cplusplus
extern "C" {
#endif // __cplusplus

/*
 * Implements the ALU specified here:
 **/
#include "../ulm0/hdw_alu.h"

/*
 * Exept for the zero register regBytes returns a pointer to the
 * least significant byte of register reg.
 * For the zero register it returns a null pointer.
 **/
uint64_t *ulm_regDevice(ulm_Reg reg);

/*
 * Set all registers to zero
 **/
void ulm_aluClear();

void ulm_printALU(ulm_Reg firstReg, ulm_Reg lastReg);

#ifdef __cplusplus
} // extern "C"
#endif // __cplusplus

#endif // ULM_ALU_H