tinycc-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Tinycc-devel] x86_64 maintainer, I remind you that long double is still


From: Christian Jullien
Subject: [Tinycc-devel] x86_64 maintainer, I remind you that long double is still not supported
Date: Sun, 9 Oct 2016 07:51:48 +0200

Hi,

 

A quick note first: Because we want to release a new version, I’m trying to play the role of a kind of “release manager”.

I’m definitely NOT TinyCC release manager and I’m not sure I want to be, I’m just trying to help. I’m reviewing tests or features that are not working ATM.

I’m able to test TinyCC on Windows 32/64, RPi (ARM32), Linux x86_64, and aarch64 Linux board. Don’t hesitate to ask me to do some tests.

 

Now, the missing feature: Passing long double in struct is not supporter with x86_64:

Part of 73_arm64 test (btw test name is odd), f11 and f21 work well while f31 hangs because of:

 

x86_64-gen.c :1359

            } else {

                assert(mode == x86_64_mode_memory);

 

In the test below, mode is passed as x86_64_mode_x87

 

// This program is designed to test some arm64-specific things, such as the

// calling convention, but should give the same results on any architecture.

 

#include <stdarg.h>

#include <stdint.h>

#include <stdio.h>

 

struct hfa11 { float a; } hfa11 = { 11.1 };

struct hfa21 { double a; } hfa21 = { 21.1 };

struct hfa31 { long double a; } hfa31 = { 31.1 };

 

f11(struct hfa11 x) {

  printf("%g\n", x.a);

}

f21(struct hfa21 x) {

  printf("%g\n", x.a);

}

f31(struct hfa31 x) {

  printf("%g\n", x.a);

}

 

int main()

{

  f11(hfa11);

  f21(hfa21);

  f31(hfa31);

  return 0;

}

 

 


reply via email to

[Prev in Thread] Current Thread [Next in Thread]