3#ifndef poplar_StackSizeDefs_hpp
4#define poplar_StackSizeDefs_hpp
77#define TOTAL_STACK_USAGE 0x80000000
89#define FUNCTION_IS_WORKER "0x40000000"
122 .macro DEF_STACK_SIZE_OWN SIZE:req FUNC_OR_SECTION:req
123 .section .stack_sizes.\FUNC_OR_SECTION,
"", @progbits
124 .dc.l \FUNC_OR_SECTION
142 .macro DEF_STACK_USAGE SIZE:req FUNC_OR_SECTION:req
143 .section .stack_sizes.\FUNC_OR_SECTION,
"", @progbits
144 .dc.l \FUNC_OR_SECTION
145 .uleb128 \SIZE+TOTAL_STACK_USAGE
162 .macro DEF_FUNC_CALL_PTRS CALLER_FUNC:req CALLED_FUNCS:vararg
163 .section .func_ptrs_def.\CALLER_FUNC,
"", @progbits
174#define DEF_STACK_USAGE_HELPER(size, funcname) \
175 __asm__(".section .stack_sizes.override." #funcname ",\"\",@progbits\n" \
176 ".dc.l " #funcname "\n" \
177 ".uleb128 " #size "\n")
195#define DEF_STACK_USAGE(size, funcname) \
196 DEF_STACK_USAGE_HELPER((size) + 0x80000000, funcname)
211#define DEF_FUNC_CALL_PTRS(caller_func, called_func_list) \
212 __asm__(".section .func_ptrs_def." caller_func ",\"\",@progbits\n" \
213 ".dc.l " caller_func "\n" \
214 ".dc.l " called_func_list "\n")
229#define DEF_FUNCTION_AS_WORKER(funcname) \
230 __asm__(".section .text." funcname ", \"" FUNCTION_IS_WORKER "\"")