18
20
#define RESULT(val, n, width) \
19
21
res |= ((uint32_t)(glue(glue(uint,width),_t))(val)) << (n * width)
21
void OPPROTO glue(glue(op_,PFX),add16_T0_T1)(void)
27
ADD16(T0 >> 16, T1 >> 16, 1);
33
void OPPROTO glue(glue(op_,PFX),add8_T0_T1)(void)
39
ADD8(T0 >> 8, T1 >> 8, 1);
40
ADD8(T0 >> 16, T1 >> 16, 2);
41
ADD8(T0 >> 24, T1 >> 24, 3);
47
void OPPROTO glue(glue(op_,PFX),sub16_T0_T1)(void)
53
SUB16(T0 >> 16, T1 >> 16, 1);
59
void OPPROTO glue(glue(op_,PFX),sub8_T0_T1)(void)
65
SUB8(T0 >> 8, T1 >> 8, 1);
66
SUB8(T0 >> 16, T1 >> 16, 2);
67
SUB8(T0 >> 24, T1 >> 24, 3);
73
void OPPROTO glue(glue(op_,PFX),subaddx_T0_T1)(void)
79
SUB16(T0 >> 16, T1 >> 16, 1);
85
void OPPROTO glue(glue(op_,PFX),addsubx_T0_T1)(void)
91
ADD16(T0 >> 16, T1 >> 16, 1);
23
uint32_t HELPER(glue(PFX,add16))(uint32_t a, uint32_t b GE_ARG)
29
ADD16(a >> 16, b >> 16, 1);
34
uint32_t HELPER(glue(PFX,add8))(uint32_t a, uint32_t b GE_ARG)
40
ADD8(a >> 8, b >> 8, 1);
41
ADD8(a >> 16, b >> 16, 2);
42
ADD8(a >> 24, b >> 24, 3);
47
uint32_t HELPER(glue(PFX,sub16))(uint32_t a, uint32_t b GE_ARG)
53
SUB16(a >> 16, b >> 16, 1);
58
uint32_t HELPER(glue(PFX,sub8))(uint32_t a, uint32_t b GE_ARG)
64
SUB8(a >> 8, b >> 8, 1);
65
SUB8(a >> 16, b >> 16, 2);
66
SUB8(a >> 24, b >> 24, 3);
71
uint32_t HELPER(glue(PFX,subaddx))(uint32_t a, uint32_t b GE_ARG)
77
SUB16(a >> 16, b >> 16, 1);
82
uint32_t HELPER(glue(PFX,addsubx))(uint32_t a, uint32_t b GE_ARG)
88
ADD16(a >> 16, b >> 16, 1);