ObjFW  Diff

Differences From Artifact [75aba7c79f]:

To Artifact [03bcbc3b9d]:


75
76
77
78
79
80
81
82
83
84
85
86
87
88
89

static void
pushDouble(struct call_context **context, size_t *currentSSE, double value)
{
	struct call_context *newContext;

	if (*currentSSE < NUM_SSE_IN) {
		(*context)->sse[(*currentSSE)++] = _mm_set_sd(value);
		(*context)->num_sse_used++;
		return;
	}

	if ((newContext = realloc(*context,
	    sizeof(**context) + ((*context)->stack_size + 1) * 8)) == NULL) {
		free(*context);







|







75
76
77
78
79
80
81
82
83
84
85
86
87
88
89

static void
pushDouble(struct call_context **context, size_t *currentSSE, double value)
{
	struct call_context *newContext;

	if (*currentSSE < NUM_SSE_IN) {
		(*context)->sse[(*currentSSE)++] = (__m128)_mm_set_sd(value);
		(*context)->num_sse_used++;
		return;
	}

	if ((newContext = realloc(*context,
	    sizeof(**context) + ((*context)->stack_size + 1) * 8)) == NULL) {
		free(*context);
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
		case 'f':;
			float floatTmp;
			_mm_store_ss(&floatTmp, context->sse[0]);
			[invocation setReturnValue: &floatTmp];
			break;
		case 'd':;
			double doubleTmp;
			_mm_store_sd(&doubleTmp, context->sse[0]);
			[invocation setReturnValue: &doubleTmp];
			break;
		case 'D':
			[invocation setReturnValue: &context->x87[0]];
			break;
		CASE_GPR('B', _Bool)
		CASE_GPR('*', uintptr_t)







|







271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
		case 'f':;
			float floatTmp;
			_mm_store_ss(&floatTmp, context->sse[0]);
			[invocation setReturnValue: &floatTmp];
			break;
		case 'd':;
			double doubleTmp;
			_mm_store_sd(&doubleTmp, (__m128d)context->sse[0]);
			[invocation setReturnValue: &doubleTmp];
			break;
		case 'D':
			[invocation setReturnValue: &context->x87[0]];
			break;
		CASE_GPR('B', _Bool)
		CASE_GPR('*', uintptr_t)