Un-ignored: the dev drive is the ground truth the restoration and emulator work constantly reference (DPL3/LIBDPL + VRENDER i860 renderer source, BT/RP live+dev game trees, VGL_LABS pod boot, scene/audio content). Kept in-repo for the pod-owner community. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
57 lines
1.4 KiB
C++
57 lines
1.4 KiB
C++
#ifndef pxplmacr_h
|
|
#define pxplmacr_h
|
|
|
|
#define pxpl5_noop() \
|
|
st.l r0, 4(rcoeffptr)
|
|
|
|
#define pxpl5_noop_inc() \
|
|
st.l r0, 4(rcoeffptr); \
|
|
adds 4, rcoeffptr, rcoeffptr
|
|
|
|
#define pxpl5op_0_l(reg,op) \
|
|
or (op())&0xffff, r0, reg
|
|
|
|
#define pxpl5op_0_h(reg,op) \
|
|
orh ((op())>>16)&0xffff, reg, reg
|
|
|
|
#define pxpl5op_0(reg,op) \
|
|
pxpl5op_0_l(reg,op); pxpl5op_0_h(reg,op)
|
|
|
|
#define pxpl5op_1_l(reg,op,a) \
|
|
or (op(a))&0xffff, r0, reg
|
|
|
|
#define pxpl5op_1_h(reg,op,a) \
|
|
orh ((op(a))>>16)&0xffff, reg, reg
|
|
|
|
#define pxpl5op_1(reg,op,a) \
|
|
pxpl5op_1_l(reg,op,(a)); pxpl5op_1_h(reg,op,(a))
|
|
|
|
#define pxpl5op_2_l(reg,op,a,b) \
|
|
or (op((a),(b)))&0xffff, r0, reg
|
|
|
|
#define pxpl5op_2_h(reg,op,a,b) \
|
|
orh ((op((a),(b)))>>16)&0xffff, reg, reg
|
|
|
|
#define pxpl5op_2(reg,op,a,b) \
|
|
pxpl5op_2_l(reg,op,(a),(b)); pxpl5op_2_h(reg,op,(a),(b))
|
|
|
|
#define pxpl5op_3_l(reg,op,a,b,c) \
|
|
or (op((a),(b),(c)))&0xffff, r0, reg
|
|
|
|
#define pxpl5op_3_h(reg,op,a,b,c) \
|
|
orh ((op((a),(b),(c)))>>16)&0xffff, reg, reg
|
|
|
|
#define pxpl5op_3(reg,op,a,b,c) \
|
|
pxpl5op_3_l(reg,op,(a),(b),(c)); pxpl5op_3_h(reg,op,(a),(b),(c))
|
|
|
|
|
|
#define pxpl5op_4(reg,op,a,b,c,d) \
|
|
or (op((a),(b),(c),(d)))&0xffff, r0, reg; \
|
|
orh ((op((a),(b),(c),(d)))>>16)&0xffff, reg, reg
|
|
|
|
#define pxpl5op_5(reg,op,a,b,c,d,e) \
|
|
or (op((a),(b),(c),(d),(e)))&0xffff, r0, reg; \
|
|
orh ((op((a),(b),(c),(d),(e)))>>16)&0xffff, reg, reg
|
|
|
|
#endif
|