I've had to introduce the XMM1 register to get the calling convention to work properly, unfortunately this has broken a fair bit of code which assumes that only XMM0 is used.
Showing the changes to tests (1 of 3 files). Show all
Unified · Split
| @@ -88,8 +88,8 @@ static int ret_2float_test(void) { · 87 unmodified lines | |||
| 88 | /* | 88 | /* |
| 89 | * ret_2double_test: | 89 | * ret_2double_test: |
| 90 | * | 90 | * |
| 91 | * On x86-64, a struct with 2 doubles should be packed into a single | 91 | * On x86-64, a struct with 2 doubles should be passed in two SSE |
| 92 | * SSE register (this tests VT_QFLOAT). | 92 | * registers. |
| 93 | */ | 93 | */ |
| 94 | typedef struct ret_2double_test_type_s {double x, y;} ret_2double_test_type; | 94 | typedef struct ret_2double_test_type_s {double x, y;} ret_2double_test_type; |
| 95 | typedef ret_2double_test_type (*ret_2double_test_function_type) (ret_2double_test_type); | 95 | typedef ret_2double_test_type (*ret_2double_test_function_type) (ret_2double_test_type); |