Add COMPILER_RT_ABI attribute to declarations of builtin functions in unittests

Summary:
This makes their local declarations match their definitions for ARM targets,
where they have a different calling convention.

This really only affects functions that use floating point types (since the
runtime functions use soft-float, and some targets may default to hard-float)
but it seemed good to make it uniform and do the int-only ones too.

Differential Revision: http://reviews.llvm.org/D9062

llvm-svn: 235722
This commit is contained in:
Derek Schuff 2015-04-24 15:45:57 +00:00
parent 24a86df13e
commit eb0ebc367e
131 changed files with 159 additions and 133 deletions

View File

@ -19,7 +19,7 @@
// Effects: aborts if abs(x) < 0 // Effects: aborts if abs(x) < 0
di_int __absvdi2(di_int a); COMPILER_RT_ABI di_int __absvdi2(di_int a);
int test__absvdi2(di_int a) int test__absvdi2(di_int a)
{ {

View File

@ -19,7 +19,7 @@
// Effects: aborts if abs(x) < 0 // Effects: aborts if abs(x) < 0
si_int __absvsi2(si_int a); COMPILER_RT_ABI si_int __absvsi2(si_int a);
int test__absvsi2(si_int a) int test__absvsi2(si_int a)
{ {

View File

@ -21,7 +21,7 @@
// Effects: aborts if abs(x) < 0 // Effects: aborts if abs(x) < 0
ti_int __absvti2(ti_int a); COMPILER_RT_ABI ti_int __absvti2(ti_int a);
int test__absvti2(ti_int a) int test__absvti2(ti_int a)
{ {

View File

@ -11,13 +11,14 @@
// //
//===----------------------------------------------------------------------===// //===----------------------------------------------------------------------===//
#include "int_lib.h"
#include <stdio.h> #include <stdio.h>
#include <stdlib.h> #include <stdlib.h>
#include <math.h> #include <math.h>
#if __arm__ #if __arm__
extern double __adddf3vfp(double a, double b); extern COMPILER_RT_ABI double __adddf3vfp(double a, double b);
int test__adddf3vfp(double a, double b) int test__adddf3vfp(double a, double b)
{ {

View File

@ -11,12 +11,13 @@
// //
//===----------------------------------------------------------------------===// //===----------------------------------------------------------------------===//
#include "int_lib.h"
#include <stdio.h> #include <stdio.h>
#include <stdlib.h> #include <stdlib.h>
#include <math.h> #include <math.h>
extern float __addsf3vfp(float a, float b); extern COMPILER_RT_ABI float __addsf3vfp(float a, float b);
#if __arm__ #if __arm__
int test__addsf3vfp(float a, float b) int test__addsf3vfp(float a, float b)

View File

@ -11,6 +11,7 @@
// //
//===----------------------------------------------------------------------===// //===----------------------------------------------------------------------===//
#include "int_lib.h"
#include <stdio.h> #include <stdio.h>
#if __LDBL_MANT_DIG__ == 113 #if __LDBL_MANT_DIG__ == 113
@ -18,7 +19,7 @@
#include "fp_test.h" #include "fp_test.h"
// Returns: a + b // Returns: a + b
long double __addtf3(long double a, long double b); COMPILER_RT_ABI long double __addtf3(long double a, long double b);
int test__addtf3(long double a, long double b, int test__addtf3(long double a, long double b,
uint64_t expectedHi, uint64_t expectedLo) uint64_t expectedHi, uint64_t expectedLo)

View File

@ -18,7 +18,7 @@
// Effects: aborts if a + b overflows // Effects: aborts if a + b overflows
di_int __addvdi3(di_int a, di_int b); COMPILER_RT_ABI di_int __addvdi3(di_int a, di_int b);
int test__addvdi3(di_int a, di_int b) int test__addvdi3(di_int a, di_int b)
{ {

View File

@ -18,7 +18,7 @@
// Effects: aborts if a + b overflows // Effects: aborts if a + b overflows
si_int __addvsi3(si_int a, si_int b); COMPILER_RT_ABI si_int __addvsi3(si_int a, si_int b);
int test__addvsi3(si_int a, si_int b) int test__addvsi3(si_int a, si_int b)
{ {

View File

@ -20,7 +20,7 @@
// Effects: aborts if a + b overflows // Effects: aborts if a + b overflows
ti_int __addvti3(ti_int a, ti_int b); COMPILER_RT_ABI ti_int __addvti3(ti_int a, ti_int b);
int test__addvti3(ti_int a, ti_int b) int test__addvti3(ti_int a, ti_int b)
{ {

View File

@ -18,7 +18,7 @@
// Precondition: 0 <= b < bits_in_dword // Precondition: 0 <= b < bits_in_dword
di_int __ashldi3(di_int a, si_int b); COMPILER_RT_ABI di_int __ashldi3(di_int a, si_int b);
int test__ashldi3(di_int a, si_int b, di_int expected) int test__ashldi3(di_int a, si_int b, di_int expected)
{ {

View File

@ -20,7 +20,7 @@
// Precondition: 0 <= b < bits_in_tword // Precondition: 0 <= b < bits_in_tword
ti_int __ashlti3(ti_int a, si_int b); COMPILER_RT_ABI ti_int __ashlti3(ti_int a, si_int b);
int test__ashlti3(ti_int a, si_int b, ti_int expected) int test__ashlti3(ti_int a, si_int b, ti_int expected)
{ {

View File

@ -18,7 +18,7 @@
// Precondition: 0 <= b < bits_in_dword // Precondition: 0 <= b < bits_in_dword
di_int __ashrdi3(di_int a, si_int b); COMPILER_RT_ABI di_int __ashrdi3(di_int a, si_int b);
int test__ashrdi3(di_int a, si_int b, di_int expected) int test__ashrdi3(di_int a, si_int b, di_int expected)
{ {

View File

@ -20,7 +20,7 @@
// Precondition: 0 <= b < bits_in_tword // Precondition: 0 <= b < bits_in_tword
ti_int __ashrti3(ti_int a, si_int b); COMPILER_RT_ABI ti_int __ashrti3(ti_int a, si_int b);
int test__ashrti3(ti_int a, si_int b, ti_int expected) int test__ashrti3(ti_int a, si_int b, ti_int expected)
{ {

View File

@ -18,7 +18,7 @@
// Precondition: a != 0 // Precondition: a != 0
si_int __clzdi2(di_int a); COMPILER_RT_ABI si_int __clzdi2(di_int a);
int test__clzdi2(di_int a, si_int expected) int test__clzdi2(di_int a, si_int expected)
{ {

View File

@ -18,7 +18,7 @@
// Precondition: a != 0 // Precondition: a != 0
si_int __clzsi2(si_int a); COMPILER_RT_ABI si_int __clzsi2(si_int a);
int test__clzsi2(si_int a, si_int expected) int test__clzsi2(si_int a, si_int expected)
{ {

View File

@ -20,7 +20,7 @@
// Precondition: a != 0 // Precondition: a != 0
si_int __clzti2(ti_int a); COMPILER_RT_ABI si_int __clzti2(ti_int a);
int test__clzti2(ti_int a, si_int expected) int test__clzti2(ti_int a, si_int expected)
{ {

View File

@ -18,7 +18,7 @@
// if (a == b) returns 1 // if (a == b) returns 1
// if (a > b) returns 2 // if (a > b) returns 2
si_int __cmpdi2(di_int a, di_int b); COMPILER_RT_ABI si_int __cmpdi2(di_int a, di_int b);
int test__cmpdi2(di_int a, di_int b, si_int expected) int test__cmpdi2(di_int a, di_int b, si_int expected)
{ {

View File

@ -20,7 +20,7 @@
// if (a == b) returns 1 // if (a == b) returns 1
// if (a > b) returns 2 // if (a > b) returns 2
si_int __cmpti2(ti_int a, ti_int b); COMPILER_RT_ABI si_int __cmpti2(ti_int a, ti_int b);
int test__cmpti2(ti_int a, ti_int b, si_int expected) int test__cmpti2(ti_int a, ti_int b, si_int expected)
{ {

View File

@ -18,7 +18,7 @@
// Precondition: a != 0 // Precondition: a != 0
si_int __ctzdi2(di_int a); COMPILER_RT_ABI si_int __ctzdi2(di_int a);
int test__ctzdi2(di_int a, si_int expected) int test__ctzdi2(di_int a, si_int expected)
{ {

View File

@ -18,7 +18,7 @@
// Precondition: a != 0 // Precondition: a != 0
si_int __ctzsi2(si_int a); COMPILER_RT_ABI si_int __ctzsi2(si_int a);
int test__ctzsi2(si_int a, si_int expected) int test__ctzsi2(si_int a, si_int expected)
{ {

View File

@ -20,7 +20,7 @@
// Precondition: a != 0 // Precondition: a != 0
si_int __ctzti2(ti_int a); COMPILER_RT_ABI si_int __ctzti2(ti_int a);
int test__ctzti2(ti_int a, si_int expected) int test__ctzti2(ti_int a, si_int expected)
{ {

View File

@ -18,7 +18,8 @@
// Returns: the quotient of (a + ib) / (c + id) // Returns: the quotient of (a + ib) / (c + id)
double _Complex __divdc3(double __a, double __b, double __c, double __d); COMPILER_RT_ABI double _Complex
__divdc3(double __a, double __b, double __c, double __d);
enum {zero, non_zero, inf, NaN, non_zero_nan}; enum {zero, non_zero, inf, NaN, non_zero_nan};

View File

@ -11,13 +11,14 @@
// //
//===----------------------------------------------------------------------===// //===----------------------------------------------------------------------===//
#include "int_lib.h"
#include <stdio.h> #include <stdio.h>
#include <stdlib.h> #include <stdlib.h>
#include <math.h> #include <math.h>
#if __arm__ #if __arm__
extern double __divdf3vfp(double a, double b); extern COMPILER_RT_ABI double __divdf3vfp(double a, double b);
int test__divdf3vfp(double a, double b) int test__divdf3vfp(double a, double b)
{ {

View File

@ -16,7 +16,7 @@
// Returns: a / b // Returns: a / b
di_int __divdi3(di_int a, di_int b); COMPILER_RT_ABI di_int __divdi3(di_int a, di_int b);
int test__divdi3(di_int a, di_int b, di_int expected) int test__divdi3(di_int a, di_int b, di_int expected)
{ {

View File

@ -16,7 +16,7 @@
// Returns: a / b // Returns: a / b
extern si_int __divmodsi4(si_int a, si_int b, si_int* rem); extern COMPILER_RT_ABI si_int __divmodsi4(si_int a, si_int b, si_int* rem);
int test__divmodsi4(si_int a, si_int b, int test__divmodsi4(si_int a, si_int b,

View File

@ -18,7 +18,8 @@
// Returns: the quotient of (a + ib) / (c + id) // Returns: the quotient of (a + ib) / (c + id)
float _Complex __divsc3(float __a, float __b, float __c, float __d); COMPILER_RT_ABI float _Complex
__divsc3(float __a, float __b, float __c, float __d);
enum {zero, non_zero, inf, NaN, non_zero_nan}; enum {zero, non_zero, inf, NaN, non_zero_nan};

View File

@ -11,12 +11,13 @@
// //
//===----------------------------------------------------------------------===// //===----------------------------------------------------------------------===//
#include "int_lib.h"
#include <stdio.h> #include <stdio.h>
#include <stdlib.h> #include <stdlib.h>
#include <math.h> #include <math.h>
extern float __divsf3vfp(float a, float b); extern COMPILER_RT_ABI float __divsf3vfp(float a, float b);
#if __arm__ #if __arm__
int test__divsf3vfp(float a, float b) int test__divsf3vfp(float a, float b)

View File

@ -16,7 +16,7 @@
// Returns: a / b // Returns: a / b
si_int __divsi3(si_int a, si_int b); COMPILER_RT_ABI si_int __divsi3(si_int a, si_int b);
int test__divsi3(si_int a, si_int b, si_int expected) int test__divsi3(si_int a, si_int b, si_int expected)
{ {

View File

@ -21,7 +21,7 @@
// Returns: the quotient of (a + ib) / (c + id) // Returns: the quotient of (a + ib) / (c + id)
long double _Complex COMPILER_RT_ABI long double _Complex
__divtc3(long double __a, long double __b, long double __c, long double __d); __divtc3(long double __a, long double __b, long double __c, long double __d);
enum {zero, non_zero, inf, NaN, non_zero_nan}; enum {zero, non_zero, inf, NaN, non_zero_nan};

View File

@ -11,6 +11,7 @@
// //
//===----------------------------------------------------------------------===// //===----------------------------------------------------------------------===//
#include "int_lib.h"
#include <stdio.h> #include <stdio.h>
#if __LDBL_MANT_DIG__ == 113 #if __LDBL_MANT_DIG__ == 113
@ -18,7 +19,7 @@
#include "fp_test.h" #include "fp_test.h"
// Returns: a / b // Returns: a / b
long double __divtf3(long double a, long double b); COMPILER_RT_ABI long double __divtf3(long double a, long double b);
int test__divtf3(long double a, long double b, int test__divtf3(long double a, long double b,
uint64_t expectedHi, uint64_t expectedLo) uint64_t expectedHi, uint64_t expectedLo)

View File

@ -18,7 +18,7 @@
// Returns: a / b // Returns: a / b
ti_int __divti3(ti_int a, ti_int b); COMPILER_RT_ABI ti_int __divti3(ti_int a, ti_int b);
int test__divti3(ti_int a, ti_int b, ti_int expected) int test__divti3(ti_int a, ti_int b, ti_int expected)
{ {

View File

@ -20,7 +20,7 @@
// Returns: the quotient of (a + ib) / (c + id) // Returns: the quotient of (a + ib) / (c + id)
long double _Complex COMPILER_RT_ABI long double _Complex
__divxc3(long double __a, long double __b, long double __c, long double __d); __divxc3(long double __a, long double __b, long double __c, long double __d);
enum {zero, non_zero, inf, NaN, non_zero_nan}; enum {zero, non_zero, inf, NaN, non_zero_nan};

View File

@ -11,12 +11,13 @@
// //
//===----------------------------------------------------------------------===// //===----------------------------------------------------------------------===//
#include "int_lib.h"
#include <stdio.h> #include <stdio.h>
#include <stdlib.h> #include <stdlib.h>
#include <math.h> #include <math.h>
extern double __extendsfdf2vfp(float a); extern COMPILER_RT_ABI double __extendsfdf2vfp(float a);
#if __arm__ #if __arm__
int test__extendsfdf2vfp(float a) int test__extendsfdf2vfp(float a)

View File

@ -11,13 +11,14 @@
// //
//===----------------------------------------------------------------------===// //===----------------------------------------------------------------------===//
#include "int_lib.h"
#include <stdio.h> #include <stdio.h>
#if __LDBL_MANT_DIG__ == 113 #if __LDBL_MANT_DIG__ == 113
#include "fp_test.h" #include "fp_test.h"
long double __extenddftf2(double a); COMPILER_RT_ABI long double __extenddftf2(double a);
int test__extenddftf2(double a, uint64_t expectedHi, uint64_t expectedLo) int test__extenddftf2(double a, uint64_t expectedHi, uint64_t expectedLo)
{ {

View File

@ -11,13 +11,14 @@
// //
//===----------------------------------------------------------------------===// //===----------------------------------------------------------------------===//
#include "int_lib.h"
#include <stdio.h> #include <stdio.h>
#if __LDBL_MANT_DIG__ == 113 #if __LDBL_MANT_DIG__ == 113
#include "fp_test.h" #include "fp_test.h"
long double __extendsftf2(float a); COMPILER_RT_ABI long double __extendsftf2(float a);
int test__extendsftf2(float a, uint64_t expectedHi, uint64_t expectedLo) int test__extendsftf2(float a, uint64_t expectedHi, uint64_t expectedLo)
{ {

View File

@ -17,7 +17,7 @@
// Returns: the index of the least significant 1-bit in a, or // Returns: the index of the least significant 1-bit in a, or
// the value zero if a is zero. The least significant bit is index one. // the value zero if a is zero. The least significant bit is index one.
si_int __ffsdi2(di_int a); COMPILER_RT_ABI si_int __ffsdi2(di_int a);
int test__ffsdi2(di_int a, si_int expected) int test__ffsdi2(di_int a, si_int expected)
{ {

View File

@ -19,7 +19,7 @@
// Returns: the index of the least significant 1-bit in a, or // Returns: the index of the least significant 1-bit in a, or
// the value zero if a is zero. The least significant bit is index one. // the value zero if a is zero. The least significant bit is index one.
si_int __ffsti2(ti_int a); COMPILER_RT_ABI si_int __ffsti2(ti_int a);
int test__ffsti2(ti_int a, si_int expected) int test__ffsti2(ti_int a, si_int expected)
{ {

View File

@ -22,7 +22,7 @@
// seee eeee eeee mmmm mmmm mmmm mmmm mmmm | mmmm mmmm mmmm mmmm mmmm mmmm mmmm mmmm // seee eeee eeee mmmm mmmm mmmm mmmm mmmm | mmmm mmmm mmmm mmmm mmmm mmmm mmmm mmmm
di_int __fixdfdi(double a); COMPILER_RT_ABI di_int __fixdfdi(double a);
int test__fixdfdi(double a, di_int expected) int test__fixdfdi(double a, di_int expected)
{ {

View File

@ -24,7 +24,7 @@
// seee eeee eeee mmmm mmmm mmmm mmmm mmmm | mmmm mmmm mmmm mmmm mmmm mmmm mmmm mmmm // seee eeee eeee mmmm mmmm mmmm mmmm mmmm | mmmm mmmm mmmm mmmm mmmm mmmm mmmm mmmm
ti_int __fixdfti(double a); COMPILER_RT_ABI ti_int __fixdfti(double a);
int test__fixdfti(double a, ti_int expected) int test__fixdfti(double a, ti_int expected)
{ {

View File

@ -22,7 +22,7 @@
// seee eeee emmm mmmm mmmm mmmm mmmm mmmm // seee eeee emmm mmmm mmmm mmmm mmmm mmmm
di_int __fixsfdi(float a); COMPILER_RT_ABI di_int __fixsfdi(float a);
int test__fixsfdi(float a, di_int expected) int test__fixsfdi(float a, di_int expected)
{ {

View File

@ -24,7 +24,7 @@
// seee eeee emmm mmmm mmmm mmmm mmmm mmmm // seee eeee emmm mmmm mmmm mmmm mmmm mmmm
ti_int __fixsfti(float a); COMPILER_RT_ABI ti_int __fixsfti(float a);
int test__fixsfti(float a, ti_int expected) int test__fixsfti(float a, ti_int expected)
{ {

View File

@ -24,7 +24,7 @@
// seee eeee eeee mmmm mmmm mmmm mmmm mmmm | mmmm mmmm mmmm mmmm mmmm mmmm mmmm mmmm // seee eeee eeee mmmm mmmm mmmm mmmm mmmm | mmmm mmmm mmmm mmmm mmmm mmmm mmmm mmmm
du_int __fixunsdfdi(double a); COMPILER_RT_ABI du_int __fixunsdfdi(double a);
int test__fixunsdfdi(double a, du_int expected) int test__fixunsdfdi(double a, du_int expected)
{ {

View File

@ -24,7 +24,7 @@
// seee eeee eeee mmmm mmmm mmmm mmmm mmmm | mmmm mmmm mmmm mmmm mmmm mmmm mmmm mmmm // seee eeee eeee mmmm mmmm mmmm mmmm mmmm | mmmm mmmm mmmm mmmm mmmm mmmm mmmm mmmm
su_int __fixunsdfsi(double a); COMPILER_RT_ABI su_int __fixunsdfsi(double a);
int test__fixunsdfsi(double a, su_int expected) int test__fixunsdfsi(double a, su_int expected)
{ {

View File

@ -11,12 +11,13 @@
// //
//===----------------------------------------------------------------------===// //===----------------------------------------------------------------------===//
#include "int_lib.h"
#include <stdio.h> #include <stdio.h>
#include <stdlib.h> #include <stdlib.h>
#include <math.h> #include <math.h>
extern unsigned int __fixunsdfsivfp(double a); extern COMPILER_RT_ABI unsigned int __fixunsdfsivfp(double a);
#if __arm__ #if __arm__
int test__fixunsdfsivfp(double a) int test__fixunsdfsivfp(double a)

View File

@ -26,7 +26,7 @@
#ifdef CRT_HAS_128BIT #ifdef CRT_HAS_128BIT
tu_int __fixunsdfti(double a); COMPILER_RT_ABI tu_int __fixunsdfti(double a);
int test__fixunsdfti(double a, tu_int expected) int test__fixunsdfti(double a, tu_int expected)
{ {

View File

@ -24,7 +24,7 @@
// seee eeee emmm mmmm mmmm mmmm mmmm mmmm // seee eeee emmm mmmm mmmm mmmm mmmm mmmm
du_int __fixunssfdi(float a); COMPILER_RT_ABI du_int __fixunssfdi(float a);
int test__fixunssfdi(float a, du_int expected) int test__fixunssfdi(float a, du_int expected)
{ {

View File

@ -24,7 +24,7 @@
// seee eeee emmm mmmm mmmm mmmm mmmm mmmm // seee eeee emmm mmmm mmmm mmmm mmmm mmmm
su_int __fixunssfsi(float a); COMPILER_RT_ABI su_int __fixunssfsi(float a);
int test__fixunssfsi(float a, su_int expected) int test__fixunssfsi(float a, su_int expected)
{ {

View File

@ -26,7 +26,7 @@
// seee eeee emmm mmmm mmmm mmmm mmmm mmmm // seee eeee emmm mmmm mmmm mmmm mmmm mmmm
tu_int __fixunssfti(float a); COMPILER_RT_ABI tu_int __fixunssfti(float a);
int test__fixunssfti(float a, tu_int expected) int test__fixunssfti(float a, tu_int expected)
{ {

View File

@ -25,7 +25,7 @@
// value in long double is representable in du_int or is negative // value in long double is representable in du_int or is negative
// (no range checking performed) // (no range checking performed)
du_int __fixunstfdi(long double a); COMPILER_RT_ABI du_int __fixunstfdi(long double a);
int test__fixunstfdi(long double a, du_int expected) int test__fixunstfdi(long double a, du_int expected)
{ {

View File

@ -28,7 +28,7 @@
// gggg gggg gggg gggg gggg gggg gggg gggg | gggg gggg gggg gggg seee eeee eeee eeee | // gggg gggg gggg gggg gggg gggg gggg gggg | gggg gggg gggg gggg seee eeee eeee eeee |
// 1mmm mmmm mmmm mmmm mmmm mmmm mmmm mmmm | mmmm mmmm mmmm mmmm mmmm mmmm mmmm mmmm // 1mmm mmmm mmmm mmmm mmmm mmmm mmmm mmmm | mmmm mmmm mmmm mmmm mmmm mmmm mmmm mmmm
du_int __fixunsxfdi(long double a); COMPILER_RT_ABI du_int __fixunsxfdi(long double a);
int test__fixunsxfdi(long double a, du_int expected) int test__fixunsxfdi(long double a, du_int expected)
{ {

View File

@ -26,7 +26,7 @@
// gggg gggg gggg gggg gggg gggg gggg gggg | gggg gggg gggg gggg seee eeee eeee eeee | // gggg gggg gggg gggg gggg gggg gggg gggg | gggg gggg gggg gggg seee eeee eeee eeee |
// 1mmm mmmm mmmm mmmm mmmm mmmm mmmm mmmm | mmmm mmmm mmmm mmmm mmmm mmmm mmmm mmmm // 1mmm mmmm mmmm mmmm mmmm mmmm mmmm mmmm | mmmm mmmm mmmm mmmm mmmm mmmm mmmm mmmm
su_int __fixunsxfsi(long double a); COMPILER_RT_ABI su_int __fixunsxfsi(long double a);
int test__fixunsxfsi(long double a, su_int expected) int test__fixunsxfsi(long double a, su_int expected)
{ {

View File

@ -27,7 +27,7 @@
// gggg gggg gggg gggg gggg gggg gggg gggg | gggg gggg gggg gggg seee eeee eeee eeee | // gggg gggg gggg gggg gggg gggg gggg gggg | gggg gggg gggg gggg seee eeee eeee eeee |
// 1mmm mmmm mmmm mmmm mmmm mmmm mmmm mmmm | mmmm mmmm mmmm mmmm mmmm mmmm mmmm mmmm // 1mmm mmmm mmmm mmmm mmmm mmmm mmmm mmmm | mmmm mmmm mmmm mmmm mmmm mmmm mmmm mmmm
tu_int __fixunsxfti(long double a); COMPILER_RT_ABI tu_int __fixunsxfti(long double a);
int test__fixunsxfti(long double a, tu_int expected) int test__fixunsxfti(long double a, tu_int expected)
{ {

View File

@ -25,7 +25,7 @@
// gggg gggg gggg gggg gggg gggg gggg gggg | gggg gggg gggg gggg seee eeee eeee eeee | // gggg gggg gggg gggg gggg gggg gggg gggg | gggg gggg gggg gggg seee eeee eeee eeee |
// 1mmm mmmm mmmm mmmm mmmm mmmm mmmm mmmm | mmmm mmmm mmmm mmmm mmmm mmmm mmmm mmmm // 1mmm mmmm mmmm mmmm mmmm mmmm mmmm mmmm | mmmm mmmm mmmm mmmm mmmm mmmm mmmm mmmm
di_int __fixxfdi(long double a); COMPILER_RT_ABI di_int __sfixxfdi(long double a);
int test__fixxfdi(long double a, di_int expected) int test__fixxfdi(long double a, di_int expected)
{ {

View File

@ -25,7 +25,7 @@
// gggg gggg gggg gggg gggg gggg gggg gggg | gggg gggg gggg gggg seee eeee eeee eeee | // gggg gggg gggg gggg gggg gggg gggg gggg | gggg gggg gggg gggg seee eeee eeee eeee |
// 1mmm mmmm mmmm mmmm mmmm mmmm mmmm mmmm | mmmm mmmm mmmm mmmm mmmm mmmm mmmm mmmm // 1mmm mmmm mmmm mmmm mmmm mmmm mmmm mmmm | mmmm mmmm mmmm mmmm mmmm mmmm mmmm mmmm
ti_int __fixxfti(long double a); COMPILER_RT_ABI ti_int __fixxfti(long double a);
int test__fixxfti(long double a, ti_int expected) int test__fixxfti(long double a, ti_int expected)
{ {

View File

@ -22,7 +22,7 @@
// seee eeee eeee mmmm mmmm mmmm mmmm mmmm | mmmm mmmm mmmm mmmm mmmm mmmm mmmm mmmm // seee eeee eeee mmmm mmmm mmmm mmmm mmmm | mmmm mmmm mmmm mmmm mmmm mmmm mmmm mmmm
double __floatdidf(di_int a); COMPILER_RT_ABI double __floatdidf(di_int a);
int test__floatdidf(di_int a, double expected) int test__floatdidf(di_int a, double expected)
{ {

View File

@ -22,7 +22,7 @@
// seee eeee emmm mmmm mmmm mmmm mmmm mmmm // seee eeee emmm mmmm mmmm mmmm mmmm mmmm
float __floatdisf(di_int a); COMPILER_RT_ABI float __floatdisf(di_int a);
int test__floatdisf(di_int a, float expected) int test__floatdisf(di_int a, float expected)
{ {

View File

@ -23,7 +23,7 @@
// gggg gggg gggg gggg gggg gggg gggg gggg | gggg gggg gggg gggg seee eeee eeee eeee | // gggg gggg gggg gggg gggg gggg gggg gggg | gggg gggg gggg gggg seee eeee eeee eeee |
// 1mmm mmmm mmmm mmmm mmmm mmmm mmmm mmmm | mmmm mmmm mmmm mmmm mmmm mmmm mmmm mmmm // 1mmm mmmm mmmm mmmm mmmm mmmm mmmm mmmm | mmmm mmmm mmmm mmmm mmmm mmmm mmmm mmmm
long double __floatdixf(di_int a); long COMPILER_RT_ABI double __floatdixf(di_int a);
int test__floatdixf(di_int a, long double expected) int test__floatdixf(di_int a, long double expected)
{ {

View File

@ -11,12 +11,13 @@
// //
//===----------------------------------------------------------------------===// //===----------------------------------------------------------------------===//
#include "int_lib.h"
#include <stdio.h> #include <stdio.h>
#include <stdlib.h> #include <stdlib.h>
#include <math.h> #include <math.h>
extern double __floatsidfvfp(int a); extern COMPILER_RT_ABI double __floatsidfvfp(int a);
#if __arm__ #if __arm__
int test__floatsidfvfp(int a) int test__floatsidfvfp(int a)

View File

@ -11,12 +11,13 @@
// //
//===----------------------------------------------------------------------===// //===----------------------------------------------------------------------===//
#include "int_lib.h"
#include <stdio.h> #include <stdio.h>
#include <stdlib.h> #include <stdlib.h>
#include <math.h> #include <math.h>
extern float __floatsisfvfp(int a); extern COMPILER_RT_ABI float __floatsisfvfp(int a);
#if __arm__ #if __arm__
int test__floatsisfvfp(int a) int test__floatsisfvfp(int a)

View File

@ -11,13 +11,14 @@
// //
//===----------------------------------------------------------------------===// //===----------------------------------------------------------------------===//
#include "int_lib.h"
#include <stdio.h> #include <stdio.h>
#if __LDBL_MANT_DIG__ == 113 #if __LDBL_MANT_DIG__ == 113
#include "fp_test.h" #include "fp_test.h"
long double __floatsitf(int a); long COMPILER_RT_ABI double __floatsitf(int a);
int test__floatsitf(int a, uint64_t expectedHi, uint64_t expectedLo) int test__floatsitf(int a, uint64_t expectedHi, uint64_t expectedLo)
{ {

View File

@ -24,7 +24,7 @@
// seee eeee eeee mmmm mmmm mmmm mmmm mmmm | mmmm mmmm mmmm mmmm mmmm mmmm mmmm mmmm // seee eeee eeee mmmm mmmm mmmm mmmm mmmm | mmmm mmmm mmmm mmmm mmmm mmmm mmmm mmmm
double __floattidf(ti_int a); COMPILER_RT_ABI double __floattidf(ti_int a);
int test__floattidf(ti_int a, double expected) int test__floattidf(ti_int a, double expected)
{ {

View File

@ -24,7 +24,7 @@
// seee eeee emmm mmmm mmmm mmmm mmmm mmmm // seee eeee emmm mmmm mmmm mmmm mmmm mmmm
float __floattisf(ti_int a); COMPILER_RT_ABI float __floattisf(ti_int a);
int test__floattisf(ti_int a, float expected) int test__floattisf(ti_int a, float expected)
{ {

View File

@ -25,7 +25,7 @@
// gggg gggg gggg gggg gggg gggg gggg gggg | gggg gggg gggg gggg seee eeee eeee eeee | // gggg gggg gggg gggg gggg gggg gggg gggg | gggg gggg gggg gggg seee eeee eeee eeee |
// 1mmm mmmm mmmm mmmm mmmm mmmm mmmm mmmm | mmmm mmmm mmmm mmmm mmmm mmmm mmmm mmmm // 1mmm mmmm mmmm mmmm mmmm mmmm mmmm mmmm | mmmm mmmm mmmm mmmm mmmm mmmm mmmm mmmm
long double __floattixf(ti_int a); COMPILER_RT_ABI long double __floattixf(ti_int a);
int test__floattixf(ti_int a, long double expected) int test__floattixf(ti_int a, long double expected)
{ {

View File

@ -22,7 +22,7 @@
// seee eeee eeee mmmm mmmm mmmm mmmm mmmm | mmmm mmmm mmmm mmmm mmmm mmmm mmmm mmmm // seee eeee eeee mmmm mmmm mmmm mmmm mmmm | mmmm mmmm mmmm mmmm mmmm mmmm mmmm mmmm
double __floatundidf(du_int a); COMPILER_RT_ABI double __floatundidf(du_int a);
int test__floatundidf(di_int a, double expected) int test__floatundidf(di_int a, double expected)
{ {

View File

@ -22,7 +22,7 @@
// seee eeee emmm mmmm mmmm mmmm mmmm mmmm // seee eeee emmm mmmm mmmm mmmm mmmm mmmm
float __floatundisf(du_int a); COMPILER_RT_ABI float __floatundisf(du_int a);
int test__floatundisf(du_int a, float expected) int test__floatundisf(du_int a, float expected)
{ {

View File

@ -24,7 +24,7 @@
// gggg gggg gggg gggg gggg gggg gggg gggg | gggg gggg gggg gggg seee eeee eeee eeee | // gggg gggg gggg gggg gggg gggg gggg gggg | gggg gggg gggg gggg seee eeee eeee eeee |
// 1mmm mmmm mmmm mmmm mmmm mmmm mmmm mmmm | mmmm mmmm mmmm mmmm mmmm mmmm mmmm mmmm // 1mmm mmmm mmmm mmmm mmmm mmmm mmmm mmmm | mmmm mmmm mmmm mmmm mmmm mmmm mmmm mmmm
long double __floatundixf(du_int a); COMPILER_RT_ABI long double __floatundixf(du_int a);
int test__floatundixf(du_int a, long double expected) int test__floatundixf(du_int a, long double expected)
{ {

View File

@ -11,13 +11,14 @@
// //
//===----------------------------------------------------------------------===// //===----------------------------------------------------------------------===//
#include "int_lib.h"
#include <stdio.h> #include <stdio.h>
#if __LDBL_MANT_DIG__ == 113 #if __LDBL_MANT_DIG__ == 113
#include "fp_test.h" #include "fp_test.h"
long double __floatunsitf(unsigned int a); COMPILER_RT_ABI long double __floatunsitf(unsigned int a);
int test__floatunsitf(unsigned int a, uint64_t expectedHi, uint64_t expectedLo) int test__floatunsitf(unsigned int a, uint64_t expectedHi, uint64_t expectedLo)
{ {

View File

@ -11,12 +11,13 @@
// //
//===----------------------------------------------------------------------===// //===----------------------------------------------------------------------===//
#include "int_lib.h"
#include <stdio.h> #include <stdio.h>
#include <stdlib.h> #include <stdlib.h>
#include <math.h> #include <math.h>
extern double __floatunssidfvfp(unsigned int a); extern COMPILER_RT_ABI double __floatunssidfvfp(unsigned int a);
#if __arm__ #if __arm__
int test__floatunssidfvfp(unsigned int a) int test__floatunssidfvfp(unsigned int a)

View File

@ -14,9 +14,9 @@
#include <stdio.h> #include <stdio.h>
#include <stdlib.h> #include <stdlib.h>
#include <math.h> #include <math.h>
#include "int_lib.h"
extern COMPILER_RT_ABI float __floatunssisfvfp(unsigned int a);
extern float __floatunssisfvfp(unsigned int a);
#if __arm__ #if __arm__
int test__floatunssisfvfp(unsigned int a) int test__floatunssisfvfp(unsigned int a)

View File

@ -24,7 +24,7 @@
// seee eeee eeee mmmm mmmm mmmm mmmm mmmm | mmmm mmmm mmmm mmmm mmmm mmmm mmmm mmmm // seee eeee eeee mmmm mmmm mmmm mmmm mmmm | mmmm mmmm mmmm mmmm mmmm mmmm mmmm mmmm
double __floatuntidf(tu_int a); COMPILER_RT_ABI double __floatuntidf(tu_int a);
int test__floatuntidf(tu_int a, double expected) int test__floatuntidf(tu_int a, double expected)
{ {

View File

@ -24,7 +24,7 @@
// seee eeee emmm mmmm mmmm mmmm mmmm mmmm // seee eeee emmm mmmm mmmm mmmm mmmm mmmm
float __floatuntisf(tu_int a); COMPILER_RT_ABI float __floatuntisf(tu_int a);
int test__floatuntisf(tu_int a, float expected) int test__floatuntisf(tu_int a, float expected)
{ {

View File

@ -25,7 +25,7 @@
// gggg gggg gggg gggg gggg gggg gggg gggg | gggg gggg gggg gggg seee eeee eeee eeee | // gggg gggg gggg gggg gggg gggg gggg gggg | gggg gggg gggg gggg seee eeee eeee eeee |
// 1mmm mmmm mmmm mmmm mmmm mmmm mmmm mmmm | mmmm mmmm mmmm mmmm mmmm mmmm mmmm mmmm // 1mmm mmmm mmmm mmmm mmmm mmmm mmmm mmmm | mmmm mmmm mmmm mmmm mmmm mmmm mmmm mmmm
long double __floatuntixf(tu_int a); COMPILER_RT_ABI long double __floatuntixf(tu_int a);
int test__floatuntixf(tu_int a, long double expected) int test__floatuntixf(tu_int a, long double expected)
{ {

View File

@ -18,7 +18,7 @@
// Precondition: 0 <= b < bits_in_dword // Precondition: 0 <= b < bits_in_dword
di_int __lshrdi3(di_int a, si_int b); COMPILER_RT_ABI di_int __lshrdi3(di_int a, si_int b);
int test__lshrdi3(di_int a, si_int b, di_int expected) int test__lshrdi3(di_int a, si_int b, di_int expected)
{ {

View File

@ -20,7 +20,7 @@
// Precondition: 0 <= b < bits_in_dword // Precondition: 0 <= b < bits_in_dword
ti_int __lshrti3(ti_int a, si_int b); COMPILER_RT_ABI ti_int __lshrti3(ti_int a, si_int b);
int test__lshrti3(ti_int a, si_int b, ti_int expected) int test__lshrti3(ti_int a, si_int b, ti_int expected)
{ {

View File

@ -16,7 +16,7 @@
// Returns: a % b // Returns: a % b
di_int __moddi3(di_int a, di_int b); COMPILER_RT_ABI di_int __moddi3(di_int a, di_int b);
int test__moddi3(di_int a, di_int b, di_int expected) int test__moddi3(di_int a, di_int b, di_int expected)
{ {

View File

@ -17,7 +17,7 @@
/* Returns: a % b */ /* Returns: a % b */
si_int __modsi3(si_int a, si_int b); COMPILER_RT_ABI si_int __modsi3(si_int a, si_int b);
int test__modsi3(si_int a, si_int b, si_int expected) { int test__modsi3(si_int a, si_int b, si_int expected) {
si_int x = __modsi3(a, b); si_int x = __modsi3(a, b);

View File

@ -18,7 +18,7 @@
// Returns: a % b // Returns: a % b
ti_int __modti3(ti_int a, ti_int b); COMPILER_RT_ABI ti_int __modti3(ti_int a, ti_int b);
int test__modti3(ti_int a, ti_int b, ti_int expected) int test__modti3(ti_int a, ti_int b, ti_int expected)
{ {

View File

@ -18,7 +18,8 @@
// Returns: the product of a + ib and c + id // Returns: the product of a + ib and c + id
double _Complex __muldc3(double __a, double __b, double __c, double __d); COMPILER_RT_ABI double _Complex
__muldc3(double __a, double __b, double __c, double __d);
enum {zero, non_zero, inf, NaN, non_zero_nan}; enum {zero, non_zero, inf, NaN, non_zero_nan};

View File

@ -11,13 +11,14 @@
// //
//===----------------------------------------------------------------------===// //===----------------------------------------------------------------------===//
#include "int_lib.h"
#include <stdio.h> #include <stdio.h>
#include <stdlib.h> #include <stdlib.h>
#include <math.h> #include <math.h>
#if __arm__ #if __arm__
extern double __muldf3vfp(double a, double b); extern COMPILER_RT_ABI double __muldf3vfp(double a, double b);
int test__muldf3vfp(double a, double b) int test__muldf3vfp(double a, double b)
{ {

View File

@ -14,7 +14,7 @@
#include "int_lib.h" #include "int_lib.h"
#include <stdio.h> #include <stdio.h>
di_int __muldi3(di_int a, di_int b); COMPILER_RT_ABI di_int __muldi3(di_int a, di_int b);
int test__muldi3(di_int a, di_int b, di_int expected) int test__muldi3(di_int a, di_int b, di_int expected)
{ {

View File

@ -14,7 +14,7 @@
#include "int_lib.h" #include "int_lib.h"
#include <stdio.h> #include <stdio.h>
extern di_int __mulodi4(di_int a, di_int b, int* overflow); extern COMPILER_RT_ABI di_int __mulodi4(di_int a, di_int b, int* overflow);
int test__mulodi4(di_int a, di_int b, di_int expected, int expected_overflow) int test__mulodi4(di_int a, di_int b, di_int expected, int expected_overflow)
{ {

View File

@ -18,7 +18,7 @@
// Effects: aborts if a * b overflows // Effects: aborts if a * b overflows
si_int __mulosi4(si_int a, si_int b, int *overflow); COMPILER_RT_ABI si_int __mulosi4(si_int a, si_int b, int *overflow);
int test__mulosi4(si_int a, si_int b, si_int expected, int expected_overflow) int test__mulosi4(si_int a, si_int b, si_int expected, int expected_overflow)
{ {

View File

@ -20,7 +20,7 @@
// Effects: sets overflow if a * b overflows // Effects: sets overflow if a * b overflows
ti_int __muloti4(ti_int a, ti_int b, int *overflow); COMPILER_RT_ABI ti_int __muloti4(ti_int a, ti_int b, int *overflow);
int test__muloti4(ti_int a, ti_int b, ti_int expected, int expected_overflow) int test__muloti4(ti_int a, ti_int b, ti_int expected, int expected_overflow)
{ {

View File

@ -18,7 +18,8 @@
// Returns: the product of a + ib and c + id // Returns: the product of a + ib and c + id
float _Complex __mulsc3(float __a, float __b, float __c, float __d); COMPILER_RT_ABI float _Complex
__mulsc3(float __a, float __b, float __c, float __d);
enum {zero, non_zero, inf, NaN, non_zero_nan}; enum {zero, non_zero, inf, NaN, non_zero_nan};

View File

@ -11,12 +11,13 @@
// //
//===----------------------------------------------------------------------===// //===----------------------------------------------------------------------===//
#include "int_lib.h"
#include <stdio.h> #include <stdio.h>
#include <stdlib.h> #include <stdlib.h>
#include <math.h> #include <math.h>
extern float __mulsf3vfp(float a, float b); extern COMPILER_RT_ABI float __mulsf3vfp(float a, float b);
#if __arm__ #if __arm__
int test__mulsf3vfp(float a, float b) int test__mulsf3vfp(float a, float b)

View File

@ -21,7 +21,7 @@
// Returns: the product of a + ib and c + id // Returns: the product of a + ib and c + id
long double _Complex COMPILER_RT_ABI long double _Complex
__multc3(long double __a, long double __b, long double __c, long double __d); __multc3(long double __a, long double __b, long double __c, long double __d);
enum {zero, non_zero, inf, NaN, non_zero_nan}; enum {zero, non_zero, inf, NaN, non_zero_nan};

View File

@ -18,7 +18,7 @@
#include "fp_test.h" #include "fp_test.h"
// Returns: a * b // Returns: a * b
long double __multf3(long double a, long double b); COMPILER_RT_ABI long double __multf3(long double a, long double b);
int test__multf3(long double a, long double b, int test__multf3(long double a, long double b,
uint64_t expectedHi, uint64_t expectedLo) uint64_t expectedHi, uint64_t expectedLo)

View File

@ -16,7 +16,7 @@
#ifdef CRT_HAS_128BIT #ifdef CRT_HAS_128BIT
ti_int __multi3(ti_int a, ti_int b); COMPILER_RT_ABI ti_int __multi3(ti_int a, ti_int b);
int test__multi3(ti_int a, ti_int b, ti_int expected) int test__multi3(ti_int a, ti_int b, ti_int expected)
{ {

View File

@ -18,7 +18,7 @@
// Effects: aborts if a * b overflows // Effects: aborts if a * b overflows
di_int __mulvdi3(di_int a, di_int b); COMPILER_RT_ABI di_int __mulvdi3(di_int a, di_int b);
int test__mulvdi3(di_int a, di_int b, di_int expected) int test__mulvdi3(di_int a, di_int b, di_int expected)
{ {

View File

@ -18,7 +18,7 @@
// Effects: aborts if a * b overflows // Effects: aborts if a * b overflows
si_int __mulvsi3(si_int a, si_int b); COMPILER_RT_ABI si_int __mulvsi3(si_int a, si_int b);
int test__mulvsi3(si_int a, si_int b, si_int expected) int test__mulvsi3(si_int a, si_int b, si_int expected)
{ {

View File

@ -20,7 +20,7 @@
// Effects: aborts if a * b overflows // Effects: aborts if a * b overflows
ti_int __mulvti3(ti_int a, ti_int b); COMPILER_RT_ABI ti_int __mulvti3(ti_int a, ti_int b);
int test__mulvti3(ti_int a, ti_int b, ti_int expected) int test__mulvti3(ti_int a, ti_int b, ti_int expected)
{ {

View File

@ -20,7 +20,7 @@
// Returns: the product of a + ib and c + id // Returns: the product of a + ib and c + id
long double _Complex COMPILER_RT_ABI long double _Complex
__mulxc3(long double __a, long double __b, long double __c, long double __d); __mulxc3(long double __a, long double __b, long double __c, long double __d);
enum {zero, non_zero, inf, NaN, non_zero_nan}; enum {zero, non_zero, inf, NaN, non_zero_nan};

View File

@ -16,7 +16,7 @@
#include <math.h> #include <math.h>
extern double __negdf2vfp(double a); extern COMPILER_RT_ABI double __negdf2vfp(double a);
#if __arm__ #if __arm__
int test__negdf2vfp(double a) int test__negdf2vfp(double a)

View File

@ -16,7 +16,7 @@
// Returns: -a // Returns: -a
di_int __negdi2(di_int a); COMPILER_RT_ABI di_int __negdi2(di_int a);
int test__negdi2(di_int a, di_int expected) int test__negdi2(di_int a, di_int expected)
{ {

View File

@ -11,12 +11,13 @@
// //
//===----------------------------------------------------------------------===// //===----------------------------------------------------------------------===//
#include "int_lib.h"
#include <stdio.h> #include <stdio.h>
#include <stdlib.h> #include <stdlib.h>
#include <math.h> #include <math.h>
extern float __negsf2vfp(float a); extern COMPILER_RT_ABI float __negsf2vfp(float a);
#if __arm__ #if __arm__
int test__negsf2vfp(float a) int test__negsf2vfp(float a)

View File

@ -18,7 +18,7 @@
// Returns: -a // Returns: -a
ti_int __negti2(ti_int a); COMPILER_RT_ABI ti_int __negti2(ti_int a);
int test__negti2(ti_int a, ti_int expected) int test__negti2(ti_int a, ti_int expected)
{ {

View File

@ -18,7 +18,7 @@
// Effects: aborts if -a overflows // Effects: aborts if -a overflows
di_int __negvdi2(di_int a); COMPILER_RT_ABI di_int __negvdi2(di_int a);
int test__negvdi2(di_int a) int test__negvdi2(di_int a)
{ {

View File

@ -18,7 +18,7 @@
// Effects: aborts if -a overflows // Effects: aborts if -a overflows
si_int __negvsi2(si_int a); COMPILER_RT_ABI si_int __negvsi2(si_int a);
int test__negvsi2(si_int a) int test__negvsi2(si_int a)
{ {

View File

@ -20,8 +20,8 @@
// Effects: aborts if -a overflows // Effects: aborts if -a overflows
ti_int __negvti2(ti_int a); COMPILER_RT_ABI ti_int __negvti2(ti_int a);
ti_int __negti2(ti_int a); COMPILER_RT_ABI ti_int __negti2(ti_int a);
int test__negvti2(ti_int a) int test__negvti2(ti_int a)
{ {

View File

@ -17,7 +17,7 @@
// Returns: 1 if number of bits is odd else returns 0 // Returns: 1 if number of bits is odd else returns 0
si_int __paritydi2(di_int a); COMPILER_RT_ABI si_int __paritydi2(di_int a);
int naive_parity(di_int a) int naive_parity(di_int a)
{ {

Some files were not shown because too many files have changed in this diff Show More