Go to the documentation of this file.
66 #define LOAD_STORE_VOLATILE_FLOAT_REGISTERS(inst, off) \
67 inst %f0, ((0 * 8) + (off))(sp); \
68 inst %f2, ((1 * 8) + (off))(sp); \
69 inst %f1, ((2 * 8) + (off))(sp); \
70 inst %f3, ((3 * 8) + (off))(sp); \
71 inst %f5, ((4 * 8) + (off))(sp); \
72 inst %f7, ((5 * 8) + (off))(sp); \
73 inst %f8, ((6 * 8) + (off))(sp); \
74 inst %f9, ((7 * 8) + (off))(sp); \
75 inst %f10, ((8 * 8) + (off))(sp); \
76 inst %f11, ((9 * 8) + (off))(sp); \
77 inst %f12, ((10 * 8) + (off))(sp); \
78 inst %f13, ((11 * 8) + (off))(sp); \
79 inst %f14, ((12 * 8) + (off))(sp); \
80 inst %f15, ((13 * 8) + (off))(sp);
82 #define VOLATILE_FLOAT_REGISTERS_SIZE (14 * 8)
84 #define LOAD_VOLATILE_FLOAT_REGISTERS(off) LOAD_STORE_VOLATILE_FLOAT_REGISTERS(ld, off)
85 #define STORE_VOLATILE_FLOAT_REGISTERS(off) LOAD_STORE_VOLATILE_FLOAT_REGISTERS(std, off)
89 #define LOAD_STORE_VOLATILE_INTEGER_REGISTERS(instm, inst, off) \
90 instm %r0, %r5, ((0 * 4) + (off))(sp); \
91 inst %r14, ((6 * 4) + (off))(sp);
93 #define VOLATILE_INTEGER_REGISTERS_SIZE (7 * 4)
95 #define LOAD_VOLATILE_INTEGER_REGISTERS(off) LOAD_STORE_VOLATILE_INTEGER_REGISTERS(lm, l, off)
96 #define STORE_VOLATILE_INTEGER_REGISTERS(off) LOAD_STORE_VOLATILE_INTEGER_REGISTERS(stm, st, off)
100 #define ARGUMENT_REGISTERS_SIZE ((5 * 4) + (2 * 8))
102 #define LOAD_STORE_ARGUMENT_REGISTERS(iinst, finst, off) \
103 iinst %r2, %r6, (off)(sp) ; \
104 finst %f0, (off + (5 * 4))(sp) ; \
105 finst %f2, (off + (5 * 4) + 8)(sp)
107 #define STORE_ARGUMENT_REGISTERS(off) LOAD_STORE_ARGUMENT_REGISTERS(stm, std, off)
108 #define LOAD_ARGUMENT_REGISTERS(off) LOAD_STORE_ARGUMENT_REGISTERS(lm, ld, off)
112 #define TEMPORARY_REGISTERS_SIZE ((1 * 4) + (12 * 8))
114 #define LOAD_STORE_TEMPORARY_REGISTERS(iinst, finst, off) \
115 finst %f1, ((0 * 8) + (off))(sp); \
116 finst %f3, ((1 * 8) + (off))(sp); \
117 finst %f5, ((2 * 8) + (off))(sp); \
118 finst %f7, ((3 * 8) + (off))(sp); \
119 finst %f8, ((4 * 8) + (off))(sp); \
120 finst %f9, ((5 * 8) + (off))(sp); \
121 finst %f10, ((6 * 8) + (off))(sp); \
122 finst %f11, ((7 * 8) + (off))(sp); \
123 finst %f12, ((8 * 8) + (off))(sp); \
124 finst %f13, ((9 * 8) + (off))(sp); \
125 finst %f14, ((10 * 8) + (off))(sp); \
126 finst %f15, ((11 * 8) + (off))(sp); \
127 iinst %r0, ((12 * 8) + (off))(sp);
129 #define LOAD_TEMPORARY_REGISTERS(off) LOAD_STORE_TEMPORARY_REGISTERS(l, ld, off)
130 #define STORE_TEMPORARY_REGISTERS(off) LOAD_STORE_TEMPORARY_REGISTERS(st, std, off)