1 #include <stdint.h>
2 
3 /* Returns true if the TCG enum is working as expected */
4 int test_enum_equal();
5 
6 /* Make sure the long jump is working like expected. */
7 int long_jump_stack_test();
8 
9 
10 #define PARAM1 0x11111111
11 #define PARAM2 0x22222222
12 #define PARAM3 0x44444444
13 #define PARAM4 0x88888888
14 
15 /* Make sure we preserve incoming parameters on longjmp, should return sum(PARAMx)
16    ints can be passed into registers vs. stack.
17 */
18 uint64_t long_jump_preserve_int_params(uint64_t a, uint64_t b, uint64_t c, uint64_t d);
19 
20 /* Make sure we preserve incoming parameters on longjmp, should return true
21    Floats can be passed in different registers..
22 */
23 int long_jump_preserve_float_params(float a, float b, float c, float d);
24 
25 /** Make sure we jump back to the 2nd setjmp instead of the first */
26 int long_jump_double_call();
27 
28 /** Make sure we preserve the longjmp return value (can be something else besides 1) */
29 int long_jump_ret_value();
30 
31 /** Set jmp will actually store some data */
32 int setjmp_sets_fields();