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();