[Top][All Lists]

[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



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





  return 0;




reply via email to

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