test_passing_floats.c

来自「用于进行gcc测试」· C语言 代码 · 共 503 行 · 第 1/2 页

C
503
字号
{  /* Check argument values.  */  assert (values_ldouble.f0 == f0);  assert (values_ldouble.f1 == f1);  assert (values_ldouble.f2 == f2);  assert (values_ldouble.f3 == f3);  assert (values_ldouble.f4 == f4);  assert (values_ldouble.f5 == f5);  assert (values_ldouble.f6 == f6);  assert (values_ldouble.f7 == f7);  assert (values_ldouble.f8 == f8);  assert (values_ldouble.f9 == f9);  assert (values_ldouble.f10 == f10);  assert (values_ldouble.f11 == f11);  assert (values_ldouble.f12 == f12);  assert (values_ldouble.f13 == f13);  assert (values_ldouble.f14 == f14);  assert (values_ldouble.f15 == f15);  assert (values_ldouble.f16 == f16);  assert (values_ldouble.f17 == f17);  assert (values_ldouble.f18 == f18);  assert (values_ldouble.f19 == f19);}voidfun_check_x87_passing_ldouble20_regs (ldouble f0 ATTRIBUTE_UNUSED, ldouble f1 ATTRIBUTE_UNUSED, ldouble f2 ATTRIBUTE_UNUSED, ldouble f3 ATTRIBUTE_UNUSED, ldouble f4 ATTRIBUTE_UNUSED, ldouble f5 ATTRIBUTE_UNUSED, ldouble f6 ATTRIBUTE_UNUSED, ldouble f7 ATTRIBUTE_UNUSED, ldouble f8 ATTRIBUTE_UNUSED, ldouble f9 ATTRIBUTE_UNUSED, ldouble f10 ATTRIBUTE_UNUSED, ldouble f11 ATTRIBUTE_UNUSED, ldouble f12 ATTRIBUTE_UNUSED, ldouble f13 ATTRIBUTE_UNUSED, ldouble f14 ATTRIBUTE_UNUSED, ldouble f15 ATTRIBUTE_UNUSED, ldouble f16 ATTRIBUTE_UNUSED, ldouble f17 ATTRIBUTE_UNUSED, ldouble f18 ATTRIBUTE_UNUSED, ldouble f19 ATTRIBUTE_UNUSED){  /* Check register contents.  */  check_ldouble_arguments;}#define def_check_float_passing8(_f0, _f1, _f2, _f3, _f4, _f5, _f6, _f7, _func1, _func2, TYPE) \  values_ ## TYPE .f0 = _f0; \  values_ ## TYPE .f1 = _f1; \  values_ ## TYPE .f2 = _f2; \  values_ ## TYPE .f3 = _f3; \  values_ ## TYPE .f4 = _f4; \  values_ ## TYPE .f5 = _f5; \  values_ ## TYPE .f6 = _f6; \  values_ ## TYPE .f7 = _f7; \  WRAP_CALL(_func1) (_f0, _f1, _f2, _f3, _f4, _f5, _f6, _f7); \  \  clear_float_registers; \  fregs.F0._ ## TYPE [0] = _f0; \  fregs.F1._ ## TYPE [0] = _f1; \  fregs.F2._ ## TYPE [0] = _f2; \  fregs.F3._ ## TYPE [0] = _f3; \  fregs.F4._ ## TYPE [0] = _f4; \  fregs.F5._ ## TYPE [0] = _f5; \  fregs.F6._ ## TYPE [0] = _f6; \  fregs.F7._ ## TYPE [0] = _f7; \  num_fregs = 8; \  WRAP_CALL(_func2) (_f0, _f1, _f2, _f3, _f4, _f5, _f6, _f7);#define def_check_float_passing16(_f0, _f1, _f2, _f3, _f4, _f5, _f6, _f7, _f8, _f9, _f10, _f11, _f12, _f13, _f14, _f15, _func1, _func2, TYPE) \  values_ ## TYPE .f0 = _f0; \  values_ ## TYPE .f1 = _f1; \  values_ ## TYPE .f2 = _f2; \  values_ ## TYPE .f3 = _f3; \  values_ ## TYPE .f4 = _f4; \  values_ ## TYPE .f5 = _f5; \  values_ ## TYPE .f6 = _f6; \  values_ ## TYPE .f7 = _f7; \  values_ ## TYPE .f8 = _f8; \  values_ ## TYPE .f9 = _f9; \  values_ ## TYPE .f10 = _f10; \  values_ ## TYPE .f11 = _f11; \  values_ ## TYPE .f12 = _f12; \  values_ ## TYPE .f13 = _f13; \  values_ ## TYPE .f14 = _f14; \  values_ ## TYPE .f15 = _f15; \  WRAP_CALL(_func1) (_f0, _f1, _f2, _f3, _f4, _f5, _f6, _f7, _f8, _f9, _f10, _f11, _f12, _f13, _f14, _f15); \  \  clear_float_registers; \  fregs.F0._ ## TYPE [0] = _f0; \  fregs.F1._ ## TYPE [0] = _f1; \  fregs.F2._ ## TYPE [0] = _f2; \  fregs.F3._ ## TYPE [0] = _f3; \  fregs.F4._ ## TYPE [0] = _f4; \  fregs.F5._ ## TYPE [0] = _f5; \  fregs.F6._ ## TYPE [0] = _f6; \  fregs.F7._ ## TYPE [0] = _f7; \  num_fregs = 8; \  WRAP_CALL(_func2) (_f0, _f1, _f2, _f3, _f4, _f5, _f6, _f7, _f8, _f9, _f10, _f11, _f12, _f13, _f14, _f15);#define def_check_float_passing20(_f0, _f1, _f2, _f3, _f4, _f5, _f6, _f7, _f8, _f9, _f10, _f11, _f12, _f13, _f14, _f15, _f16, _f17, _f18, _f19, _func1, _func2, TYPE) \  values_ ## TYPE .f0 = _f0; \  values_ ## TYPE .f1 = _f1; \  values_ ## TYPE .f2 = _f2; \  values_ ## TYPE .f3 = _f3; \  values_ ## TYPE .f4 = _f4; \  values_ ## TYPE .f5 = _f5; \  values_ ## TYPE .f6 = _f6; \  values_ ## TYPE .f7 = _f7; \  values_ ## TYPE .f8 = _f8; \  values_ ## TYPE .f9 = _f9; \  values_ ## TYPE .f10 = _f10; \  values_ ## TYPE .f11 = _f11; \  values_ ## TYPE .f12 = _f12; \  values_ ## TYPE .f13 = _f13; \  values_ ## TYPE .f14 = _f14; \  values_ ## TYPE .f15 = _f15; \  values_ ## TYPE .f16 = _f16; \  values_ ## TYPE .f17 = _f17; \  values_ ## TYPE .f18 = _f18; \  values_ ## TYPE .f19 = _f19; \  WRAP_CALL(_func1) (_f0, _f1, _f2, _f3, _f4, _f5, _f6, _f7, _f8, _f9, _f10, _f11, _f12, _f13, _f14, _f15, _f16, _f17, _f18, _f19); \  \  clear_float_registers; \  fregs.F0._ ## TYPE [0] = _f0; \  fregs.F1._ ## TYPE [0] = _f1; \  fregs.F2._ ## TYPE [0] = _f2; \  fregs.F3._ ## TYPE [0] = _f3; \  fregs.F4._ ## TYPE [0] = _f4; \  fregs.F5._ ## TYPE [0] = _f5; \  fregs.F6._ ## TYPE [0] = _f6; \  fregs.F7._ ## TYPE [0] = _f7; \  num_fregs = 8; \  WRAP_CALL(_func2) (_f0, _f1, _f2, _f3, _f4, _f5, _f6, _f7, _f8, _f9, _f10, _f11, _f12, _f13, _f14, _f15, _f16, _f17, _f18, _f19);#define def_check_x87_passing8(_f0, _f1, _f2, _f3, _f4, _f5, _f6, _f7, _func1, _func2, TYPE) \  values_ ## TYPE .f0 = _f0; \  values_ ## TYPE .f1 = _f1; \  values_ ## TYPE .f2 = _f2; \  values_ ## TYPE .f3 = _f3; \  values_ ## TYPE .f4 = _f4; \  values_ ## TYPE .f5 = _f5; \  values_ ## TYPE .f6 = _f6; \  values_ ## TYPE .f7 = _f7; \  WRAP_CALL(_func1) (_f0, _f1, _f2, _f3, _f4, _f5, _f6, _f7); \  \  clear_x87_registers; \  num_fregs = 0; \  WRAP_CALL(_func2) (_f0, _f1, _f2, _f3, _f4, _f5, _f6, _f7);#define def_check_x87_passing16(_f0, _f1, _f2, _f3, _f4, _f5, _f6, _f7, _f8, _f9, _f10, _f11, _f12, _f13, _f14, _f15, _func1, _func2, TYPE) \  values_ ## TYPE .f0 = _f0; \  values_ ## TYPE .f1 = _f1; \  values_ ## TYPE .f2 = _f2; \  values_ ## TYPE .f3 = _f3; \  values_ ## TYPE .f4 = _f4; \  values_ ## TYPE .f5 = _f5; \  values_ ## TYPE .f6 = _f6; \  values_ ## TYPE .f7 = _f7; \  values_ ## TYPE .f8 = _f8; \  values_ ## TYPE .f9 = _f9; \  values_ ## TYPE .f10 = _f10; \  values_ ## TYPE .f11 = _f11; \  values_ ## TYPE .f12 = _f12; \  values_ ## TYPE .f13 = _f13; \  values_ ## TYPE .f14 = _f14; \  values_ ## TYPE .f15 = _f15; \  WRAP_CALL(_func1) (_f0, _f1, _f2, _f3, _f4, _f5, _f6, _f7, _f8, _f9, _f10, _f11, _f12, _f13, _f14, _f15); \  \  clear_x87_registers; \  num_fregs = 0; \  WRAP_CALL(_func2) (_f0, _f1, _f2, _f3, _f4, _f5, _f6, _f7, _f8, _f9, _f10, _f11, _f12, _f13, _f14, _f15);#define def_check_x87_passing20(_f0, _f1, _f2, _f3, _f4, _f5, _f6, _f7, _f8, _f9, _f10, _f11, _f12, _f13, _f14, _f15, _f16, _f17, _f18, _f19, _func1, _func2, TYPE) \  values_ ## TYPE .f0 = _f0; \  values_ ## TYPE .f1 = _f1; \  values_ ## TYPE .f2 = _f2; \  values_ ## TYPE .f3 = _f3; \  values_ ## TYPE .f4 = _f4; \  values_ ## TYPE .f5 = _f5; \  values_ ## TYPE .f6 = _f6; \  values_ ## TYPE .f7 = _f7; \  values_ ## TYPE .f8 = _f8; \  values_ ## TYPE .f9 = _f9; \  values_ ## TYPE .f10 = _f10; \  values_ ## TYPE .f11 = _f11; \  values_ ## TYPE .f12 = _f12; \  values_ ## TYPE .f13 = _f13; \  values_ ## TYPE .f14 = _f14; \  values_ ## TYPE .f15 = _f15; \  values_ ## TYPE .f16 = _f16; \  values_ ## TYPE .f17 = _f17; \  values_ ## TYPE .f18 = _f18; \  values_ ## TYPE .f19 = _f19; \  WRAP_CALL(_func1) (_f0, _f1, _f2, _f3, _f4, _f5, _f6, _f7, _f8, _f9, _f10, _f11, _f12, _f13, _f14, _f15, _f16, _f17, _f18, _f19); \  \  clear_x87_registers; \  num_fregs = 0; \  WRAP_CALL(_func2) (_f0, _f1, _f2, _f3, _f4, _f5, _f6, _f7, _f8, _f9, _f10, _f11, _f12, _f13, _f14, _f15, _f16, _f17, _f18, _f19);voidtest_floats_on_stack (){  def_check_float_passing8(32, 33, 34, 35, 36, 37, 38, 39, fun_check_float_passing_float8_values, fun_check_float_passing_float8_regs, float);  def_check_float_passing16(32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, fun_check_float_passing_float16_values, fun_check_float_passing_float16_regs, float);}voidtest_too_many_floats (){  def_check_float_passing20(32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, fun_check_float_passing_float20_values, fun_check_float_passing_float20_regs, float);}voidtest_doubles_on_stack (){  def_check_float_passing8(32, 33, 34, 35, 36, 37, 38, 39, fun_check_float_passing_double8_values, fun_check_float_passing_double8_regs, double);  def_check_float_passing16(32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, fun_check_float_passing_double16_values, fun_check_float_passing_double16_regs, double);}voidtest_too_many_doubles (){  def_check_float_passing20(32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, fun_check_float_passing_double20_values, fun_check_float_passing_double20_regs, double);}voidtest_long_doubles_on_stack (){  def_check_x87_passing8(32, 33, 34, 35, 36, 37, 38, 39, fun_check_x87_passing_ldouble8_values, fun_check_x87_passing_ldouble8_regs, ldouble);}voidtest_too_many_long_doubles (){  def_check_x87_passing20(32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, fun_check_x87_passing_ldouble20_values, fun_check_x87_passing_ldouble20_regs, ldouble);}voidtest_float128s_on_stack (){}voidtest_too_many_float128s (){}intmain (void){  test_floats_on_stack ();  test_too_many_floats ();  test_doubles_on_stack ();  test_too_many_doubles ();  test_long_doubles_on_stack ();  test_too_many_long_doubles ();  test_float128s_on_stack ();  test_too_many_float128s ();  return 0;}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?