1a0664b9ca67b594bd6f570a61d3301167a24750cElliott Hughes#if defined(__mips_hard_float) 2a0664b9ca67b594bd6f570a61d3301167a24750cElliott Hughes 3e584b0e99b31e6d257cc58c630cd6067550539e3sewardj#include <stdio.h> 434ff174f3cef6e6058385c0a404572d5e8e5c67cdejanj#include <stdlib.h> 5e584b0e99b31e6d257cc58c630cd6067550539e3sewardj 6e584b0e99b31e6d257cc58c630cd6067550539e3sewardjtypedef enum { 7e584b0e99b31e6d257cc58c630cd6067550539e3sewardj ABSS=0, ABSD, 8e584b0e99b31e6d257cc58c630cd6067550539e3sewardj ADDS, ADDD, 9e584b0e99b31e6d257cc58c630cd6067550539e3sewardj DIVS, DIVD, 10e584b0e99b31e6d257cc58c630cd6067550539e3sewardj MULS, MULD, 11e584b0e99b31e6d257cc58c630cd6067550539e3sewardj NEGS, NEGD, 12e584b0e99b31e6d257cc58c630cd6067550539e3sewardj SQRTS, SQRTD, 13e584b0e99b31e6d257cc58c630cd6067550539e3sewardj SUBS, SUBD, 14e584b0e99b31e6d257cc58c630cd6067550539e3sewardj RECIPS, RECIPD, 15e584b0e99b31e6d257cc58c630cd6067550539e3sewardj RSQRTS, RSQRTD 16e584b0e99b31e6d257cc58c630cd6067550539e3sewardj} flt_art_op_t; 17e584b0e99b31e6d257cc58c630cd6067550539e3sewardj 18e584b0e99b31e6d257cc58c630cd6067550539e3sewardjconst char *flt_art_op_names[] = { 19e584b0e99b31e6d257cc58c630cd6067550539e3sewardj "abs.s", "abs.d", 20e584b0e99b31e6d257cc58c630cd6067550539e3sewardj "add.s", "add.d", 21e584b0e99b31e6d257cc58c630cd6067550539e3sewardj "div.s", "div.d", 22e584b0e99b31e6d257cc58c630cd6067550539e3sewardj "mul.s", "mul.d", 23e584b0e99b31e6d257cc58c630cd6067550539e3sewardj "neg.s", "neg.d", 24e584b0e99b31e6d257cc58c630cd6067550539e3sewardj "sqrt.s", "sqrt.d", 25e584b0e99b31e6d257cc58c630cd6067550539e3sewardj "sub.s", "sub.d", 26e584b0e99b31e6d257cc58c630cd6067550539e3sewardj "recip.s", "recip.d", 27e584b0e99b31e6d257cc58c630cd6067550539e3sewardj "rsqrt.s", "rsqrt.d" 28e584b0e99b31e6d257cc58c630cd6067550539e3sewardj}; 29e584b0e99b31e6d257cc58c630cd6067550539e3sewardj 3034ff174f3cef6e6058385c0a404572d5e8e5c67cdejanjtypedef enum { 3134ff174f3cef6e6058385c0a404572d5e8e5c67cdejanj TO_NEAREST=0, TO_ZERO, TO_PLUS_INFINITY, TO_MINUS_INFINITY } round_mode_t; 3234ff174f3cef6e6058385c0a404572d5e8e5c67cdejanjchar *round_mode_name[] = { "near", "zero", "+inf", "-inf" }; 3334ff174f3cef6e6058385c0a404572d5e8e5c67cdejanj 34e584b0e99b31e6d257cc58c630cd6067550539e3sewardjconst double fs_d[] = { 3534ff174f3cef6e6058385c0a404572d5e8e5c67cdejanj 0, 456.25, 3, -1, 3634ff174f3cef6e6058385c0a404572d5e8e5c67cdejanj 1384.5, -7.25, 1000000000, -5786.5, 3734ff174f3cef6e6058385c0a404572d5e8e5c67cdejanj 1752, 0.015625, 0.03125, -248562.75, 3834ff174f3cef6e6058385c0a404572d5e8e5c67cdejanj 456, -45786.5, 34.03125, 45786.75, 3934ff174f3cef6e6058385c0a404572d5e8e5c67cdejanj 1752065, 107, -45667.25, -7, 4034ff174f3cef6e6058385c0a404572d5e8e5c67cdejanj -347856.5, 356047.5, -1.0, 23.0625 41e584b0e99b31e6d257cc58c630cd6067550539e3sewardj}; 42e584b0e99b31e6d257cc58c630cd6067550539e3sewardj 43e584b0e99b31e6d257cc58c630cd6067550539e3sewardjconst double ft_d[] = { 4434ff174f3cef6e6058385c0a404572d5e8e5c67cdejanj -456.25, -45786.5, 34.03125, 45786.75, 4534ff174f3cef6e6058385c0a404572d5e8e5c67cdejanj 1752065, 107, -45667.25, -7.25, 4634ff174f3cef6e6058385c0a404572d5e8e5c67cdejanj -347856.5, 356047.5, -1.0, 23.0625, 4734ff174f3cef6e6058385c0a404572d5e8e5c67cdejanj 0, 456.25, 3, -1, 4834ff174f3cef6e6058385c0a404572d5e8e5c67cdejanj 1384.5, -7, 1000000000, -5786.5, 4934ff174f3cef6e6058385c0a404572d5e8e5c67cdejanj 1752, 0.015625, 0.03125, -248562.75 50e584b0e99b31e6d257cc58c630cd6067550539e3sewardj}; 51e584b0e99b31e6d257cc58c630cd6067550539e3sewardj 52e584b0e99b31e6d257cc58c630cd6067550539e3sewardjconst float fs_f[] = { 5334ff174f3cef6e6058385c0a404572d5e8e5c67cdejanj 0, 456.25, 3, -1, 5434ff174f3cef6e6058385c0a404572d5e8e5c67cdejanj 1384.5, -7.25, 1000000000, -5786.5, 5534ff174f3cef6e6058385c0a404572d5e8e5c67cdejanj 1752, 0.015625, 0.03125, -248562.75, 5634ff174f3cef6e6058385c0a404572d5e8e5c67cdejanj 456, -45786.5, 34.03125, 45786.75, 5734ff174f3cef6e6058385c0a404572d5e8e5c67cdejanj 1752065, 107, -45667.25, -7, 5834ff174f3cef6e6058385c0a404572d5e8e5c67cdejanj -347856.5, 356047.5, -1.0, 23.0625 59e584b0e99b31e6d257cc58c630cd6067550539e3sewardj}; 60e584b0e99b31e6d257cc58c630cd6067550539e3sewardj 61e584b0e99b31e6d257cc58c630cd6067550539e3sewardjconst float ft_f[] = { 6234ff174f3cef6e6058385c0a404572d5e8e5c67cdejanj -456.25, -4578.5, 34.03125, 4578.75, 6334ff174f3cef6e6058385c0a404572d5e8e5c67cdejanj 175, 107, -456.25, -7.25, 6434ff174f3cef6e6058385c0a404572d5e8e5c67cdejanj -3478.5, 356.5, -1.0, 23.0625, 6534ff174f3cef6e6058385c0a404572d5e8e5c67cdejanj 0, 456.25, 3, -1, 6634ff174f3cef6e6058385c0a404572d5e8e5c67cdejanj 1384.5, -7, 100, -5786.5, 6734ff174f3cef6e6058385c0a404572d5e8e5c67cdejanj 1752, 0.015625, 0.03125, -248562.75 68e584b0e99b31e6d257cc58c630cd6067550539e3sewardj}; 69e584b0e99b31e6d257cc58c630cd6067550539e3sewardj 70e584b0e99b31e6d257cc58c630cd6067550539e3sewardj#define UNOPdd(op) \ 71e584b0e99b31e6d257cc58c630cd6067550539e3sewardj fd_d = 0; \ 72e584b0e99b31e6d257cc58c630cd6067550539e3sewardj __asm__ volatile( \ 73e584b0e99b31e6d257cc58c630cd6067550539e3sewardj op" %0, %1\n\t" \ 74e584b0e99b31e6d257cc58c630cd6067550539e3sewardj : "=f"(fd_d) : "f"(fs_d[i])); 75e584b0e99b31e6d257cc58c630cd6067550539e3sewardj 76e584b0e99b31e6d257cc58c630cd6067550539e3sewardj#define UNOPff(op) \ 77e584b0e99b31e6d257cc58c630cd6067550539e3sewardj fd_f = 0; \ 78e584b0e99b31e6d257cc58c630cd6067550539e3sewardj __asm__ volatile( \ 79e584b0e99b31e6d257cc58c630cd6067550539e3sewardj op" %0, %1\n\t" \ 80e584b0e99b31e6d257cc58c630cd6067550539e3sewardj : "=f"(fd_f) : "f"(fs_f[i])); 81e584b0e99b31e6d257cc58c630cd6067550539e3sewardj 82e584b0e99b31e6d257cc58c630cd6067550539e3sewardj#define BINOPf(op) \ 83e584b0e99b31e6d257cc58c630cd6067550539e3sewardj fd_f = 0; \ 84e584b0e99b31e6d257cc58c630cd6067550539e3sewardj __asm__ volatile( \ 85e584b0e99b31e6d257cc58c630cd6067550539e3sewardj op" %0, %1, %2\n\t" \ 86e584b0e99b31e6d257cc58c630cd6067550539e3sewardj : "=f"(fd_f) : "f"(fs_f[i]) , "f"(ft_f[i])); 87e584b0e99b31e6d257cc58c630cd6067550539e3sewardj 88e584b0e99b31e6d257cc58c630cd6067550539e3sewardj#define BINOPd(op) \ 89e584b0e99b31e6d257cc58c630cd6067550539e3sewardj fd_d = 0; \ 90e584b0e99b31e6d257cc58c630cd6067550539e3sewardj __asm__ volatile( \ 91e584b0e99b31e6d257cc58c630cd6067550539e3sewardj op" %0, %1, %2\n\t" \ 92e584b0e99b31e6d257cc58c630cd6067550539e3sewardj : "=f"(fd_d) : "f"(fs_d[i]) , "f"(ft_d[i])); 93e584b0e99b31e6d257cc58c630cd6067550539e3sewardj 9434ff174f3cef6e6058385c0a404572d5e8e5c67cdejanjvoid set_rounding_mode(round_mode_t mode) 9534ff174f3cef6e6058385c0a404572d5e8e5c67cdejanj{ 9634ff174f3cef6e6058385c0a404572d5e8e5c67cdejanj switch(mode) { 9734ff174f3cef6e6058385c0a404572d5e8e5c67cdejanj case TO_NEAREST: 9834ff174f3cef6e6058385c0a404572d5e8e5c67cdejanj __asm__ volatile("cfc1 $t0, $31\n\t" 9934ff174f3cef6e6058385c0a404572d5e8e5c67cdejanj "srl $t0, 2\n\t" 10034ff174f3cef6e6058385c0a404572d5e8e5c67cdejanj "sll $t0, 2\n\t" 10134ff174f3cef6e6058385c0a404572d5e8e5c67cdejanj "ctc1 $t0, $31\n\t"); 10234ff174f3cef6e6058385c0a404572d5e8e5c67cdejanj break; 10334ff174f3cef6e6058385c0a404572d5e8e5c67cdejanj case TO_ZERO: 10434ff174f3cef6e6058385c0a404572d5e8e5c67cdejanj __asm__ volatile("cfc1 $t0, $31\n\t" 10534ff174f3cef6e6058385c0a404572d5e8e5c67cdejanj "srl $t0, 2\n\t" 10634ff174f3cef6e6058385c0a404572d5e8e5c67cdejanj "sll $t0, 2\n\t" 10734ff174f3cef6e6058385c0a404572d5e8e5c67cdejanj "addiu $t0, 1\n\t" 10834ff174f3cef6e6058385c0a404572d5e8e5c67cdejanj "ctc1 $t0, $31\n\t"); 10934ff174f3cef6e6058385c0a404572d5e8e5c67cdejanj break; 11034ff174f3cef6e6058385c0a404572d5e8e5c67cdejanj case TO_PLUS_INFINITY: 11134ff174f3cef6e6058385c0a404572d5e8e5c67cdejanj __asm__ volatile("cfc1 $t0, $31\n\t" 11234ff174f3cef6e6058385c0a404572d5e8e5c67cdejanj "srl $t0, 2\n\t" 11334ff174f3cef6e6058385c0a404572d5e8e5c67cdejanj "sll $t0, 2\n\t" 11434ff174f3cef6e6058385c0a404572d5e8e5c67cdejanj "addiu $t0, 2\n\t" 11534ff174f3cef6e6058385c0a404572d5e8e5c67cdejanj "ctc1 $t0, $31\n\t"); 11634ff174f3cef6e6058385c0a404572d5e8e5c67cdejanj break; 11734ff174f3cef6e6058385c0a404572d5e8e5c67cdejanj case TO_MINUS_INFINITY: 11834ff174f3cef6e6058385c0a404572d5e8e5c67cdejanj __asm__ volatile("cfc1 $t0, $31\n\t" 11934ff174f3cef6e6058385c0a404572d5e8e5c67cdejanj "srl $t0, 2\n\t" 12034ff174f3cef6e6058385c0a404572d5e8e5c67cdejanj "sll $t0, 2\n\t" 12134ff174f3cef6e6058385c0a404572d5e8e5c67cdejanj "addiu $t0, 3\n\t" 12234ff174f3cef6e6058385c0a404572d5e8e5c67cdejanj "ctc1 $t0, $31\n\t"); 12334ff174f3cef6e6058385c0a404572d5e8e5c67cdejanj break; 12434ff174f3cef6e6058385c0a404572d5e8e5c67cdejanj } 12534ff174f3cef6e6058385c0a404572d5e8e5c67cdejanj} 12634ff174f3cef6e6058385c0a404572d5e8e5c67cdejanj 12734ff174f3cef6e6058385c0a404572d5e8e5c67cdejanjint arithmeticOperations(flt_art_op_t op) 128e584b0e99b31e6d257cc58c630cd6067550539e3sewardj{ 129e584b0e99b31e6d257cc58c630cd6067550539e3sewardj double fd_d = 0; 130e584b0e99b31e6d257cc58c630cd6067550539e3sewardj float fd_f = 0; 131e584b0e99b31e6d257cc58c630cd6067550539e3sewardj int i = 0; 13234ff174f3cef6e6058385c0a404572d5e8e5c67cdejanj round_mode_t rm; 13334ff174f3cef6e6058385c0a404572d5e8e5c67cdejanj for (rm = TO_NEAREST; rm <= TO_MINUS_INFINITY; rm ++) { 13434ff174f3cef6e6058385c0a404572d5e8e5c67cdejanj set_rounding_mode(rm); 13534ff174f3cef6e6058385c0a404572d5e8e5c67cdejanj printf("rounding mode: %s\n", round_mode_name[rm]); 13634ff174f3cef6e6058385c0a404572d5e8e5c67cdejanj for (i = 0; i < 24; i++) 13734ff174f3cef6e6058385c0a404572d5e8e5c67cdejanj { 13834ff174f3cef6e6058385c0a404572d5e8e5c67cdejanj switch(op) { 13934ff174f3cef6e6058385c0a404572d5e8e5c67cdejanj case ABSS: 14034ff174f3cef6e6058385c0a404572d5e8e5c67cdejanj UNOPff("abs.s"); 14134ff174f3cef6e6058385c0a404572d5e8e5c67cdejanj printf("%s %f %f\n", flt_art_op_names[op], fd_f, fs_f[i]); 14234ff174f3cef6e6058385c0a404572d5e8e5c67cdejanj break; 14334ff174f3cef6e6058385c0a404572d5e8e5c67cdejanj case ABSD: 14434ff174f3cef6e6058385c0a404572d5e8e5c67cdejanj UNOPdd("abs.d"); 14534ff174f3cef6e6058385c0a404572d5e8e5c67cdejanj printf("%s %lf %lf\n", flt_art_op_names[op], fd_d, fs_d[i]); 14634ff174f3cef6e6058385c0a404572d5e8e5c67cdejanj break; 14734ff174f3cef6e6058385c0a404572d5e8e5c67cdejanj case ADDS: 14834ff174f3cef6e6058385c0a404572d5e8e5c67cdejanj BINOPf("add.s"); 14934ff174f3cef6e6058385c0a404572d5e8e5c67cdejanj printf("%s %f %f %f\n", flt_art_op_names[op], fd_f, fs_f[i], ft_f[i]); 15034ff174f3cef6e6058385c0a404572d5e8e5c67cdejanj break; 15134ff174f3cef6e6058385c0a404572d5e8e5c67cdejanj case ADDD: 15234ff174f3cef6e6058385c0a404572d5e8e5c67cdejanj BINOPd("add.d"); 15334ff174f3cef6e6058385c0a404572d5e8e5c67cdejanj printf("%s %lf %lf %lf\n", flt_art_op_names[op], fd_d, fs_d[i], ft_d[i]); 15434ff174f3cef6e6058385c0a404572d5e8e5c67cdejanj break; 15534ff174f3cef6e6058385c0a404572d5e8e5c67cdejanj case DIVS: 15634ff174f3cef6e6058385c0a404572d5e8e5c67cdejanj BINOPf("div.s"); 15734ff174f3cef6e6058385c0a404572d5e8e5c67cdejanj printf("%s %f %f %f\n", flt_art_op_names[op], fd_f, fs_f[i], ft_f[i]); 15834ff174f3cef6e6058385c0a404572d5e8e5c67cdejanj break; 15934ff174f3cef6e6058385c0a404572d5e8e5c67cdejanj case DIVD: 16034ff174f3cef6e6058385c0a404572d5e8e5c67cdejanj BINOPd("div.d"); 16134ff174f3cef6e6058385c0a404572d5e8e5c67cdejanj printf("%s %lf %lf %lf\n", flt_art_op_names[op], fd_d, fs_d[i], ft_d[i]); 16234ff174f3cef6e6058385c0a404572d5e8e5c67cdejanj break; 16334ff174f3cef6e6058385c0a404572d5e8e5c67cdejanj case MULS: 16434ff174f3cef6e6058385c0a404572d5e8e5c67cdejanj BINOPf("mul.s"); 16534ff174f3cef6e6058385c0a404572d5e8e5c67cdejanj printf("%s %f %f %f\n", flt_art_op_names[op], fd_f, fs_f[i], ft_f[i]); 16634ff174f3cef6e6058385c0a404572d5e8e5c67cdejanj break; 16734ff174f3cef6e6058385c0a404572d5e8e5c67cdejanj case MULD: 16834ff174f3cef6e6058385c0a404572d5e8e5c67cdejanj BINOPd("mul.d"); 16934ff174f3cef6e6058385c0a404572d5e8e5c67cdejanj printf("%s %lf %lf %lf\n", flt_art_op_names[op], fd_d, fs_d[i], ft_d[i]); 17034ff174f3cef6e6058385c0a404572d5e8e5c67cdejanj break; 17134ff174f3cef6e6058385c0a404572d5e8e5c67cdejanj case NEGS: 17234ff174f3cef6e6058385c0a404572d5e8e5c67cdejanj UNOPff("neg.s"); 17334ff174f3cef6e6058385c0a404572d5e8e5c67cdejanj printf("%s %f %f\n", flt_art_op_names[op], fd_f, fs_f[i]); 17434ff174f3cef6e6058385c0a404572d5e8e5c67cdejanj break; 17534ff174f3cef6e6058385c0a404572d5e8e5c67cdejanj case NEGD: 17634ff174f3cef6e6058385c0a404572d5e8e5c67cdejanj UNOPdd("neg.d"); 17734ff174f3cef6e6058385c0a404572d5e8e5c67cdejanj printf("%s %lf %lf\n", flt_art_op_names[op], fd_d, fs_d[i]); 17834ff174f3cef6e6058385c0a404572d5e8e5c67cdejanj break; 17934ff174f3cef6e6058385c0a404572d5e8e5c67cdejanj case SQRTS: 18034ff174f3cef6e6058385c0a404572d5e8e5c67cdejanj UNOPff("sqrt.s"); 18134ff174f3cef6e6058385c0a404572d5e8e5c67cdejanj printf("%s %f %f\n", flt_art_op_names[op], fd_f, fs_f[i]); 18234ff174f3cef6e6058385c0a404572d5e8e5c67cdejanj break; 18334ff174f3cef6e6058385c0a404572d5e8e5c67cdejanj case SQRTD: 18434ff174f3cef6e6058385c0a404572d5e8e5c67cdejanj UNOPdd("sqrt.d"); 18534ff174f3cef6e6058385c0a404572d5e8e5c67cdejanj printf("%s %lf %lf\n", flt_art_op_names[op], fd_d, fs_d[i]); 18634ff174f3cef6e6058385c0a404572d5e8e5c67cdejanj break; 18734ff174f3cef6e6058385c0a404572d5e8e5c67cdejanj case SUBS: 18834ff174f3cef6e6058385c0a404572d5e8e5c67cdejanj BINOPf("sub.s"); 18934ff174f3cef6e6058385c0a404572d5e8e5c67cdejanj printf("%s %f %f %f\n", flt_art_op_names[op], fd_f, fs_f[i], ft_f[i]); 19034ff174f3cef6e6058385c0a404572d5e8e5c67cdejanj break; 19134ff174f3cef6e6058385c0a404572d5e8e5c67cdejanj case SUBD: 19234ff174f3cef6e6058385c0a404572d5e8e5c67cdejanj BINOPd("sub.d"); 19334ff174f3cef6e6058385c0a404572d5e8e5c67cdejanj printf("%s %lf %lf %lf\n", flt_art_op_names[op], fd_d, fs_d[i], ft_d[i]); 19434ff174f3cef6e6058385c0a404572d5e8e5c67cdejanj break; 19534ff174f3cef6e6058385c0a404572d5e8e5c67cdejanj case RECIPS: 1964931c0dbc3912b97beb3784122d1ea7825a2c882petarj#if (__mips==32) && (__mips_isa_rev>=2) 19734ff174f3cef6e6058385c0a404572d5e8e5c67cdejanj UNOPff("recip.s"); 19834ff174f3cef6e6058385c0a404572d5e8e5c67cdejanj printf("%s %f %f\n", flt_art_op_names[op], fd_f, fs_f[i]); 1994931c0dbc3912b97beb3784122d1ea7825a2c882petarj#endif 20034ff174f3cef6e6058385c0a404572d5e8e5c67cdejanj break; 20134ff174f3cef6e6058385c0a404572d5e8e5c67cdejanj case RECIPD: 2024931c0dbc3912b97beb3784122d1ea7825a2c882petarj#if (__mips==32) && (__mips_isa_rev>=2) 20334ff174f3cef6e6058385c0a404572d5e8e5c67cdejanj UNOPdd("recip.d"); 20434ff174f3cef6e6058385c0a404572d5e8e5c67cdejanj printf("%s %lf %lf\n", flt_art_op_names[op], fd_d, fs_d[i]); 2054931c0dbc3912b97beb3784122d1ea7825a2c882petarj#endif 20634ff174f3cef6e6058385c0a404572d5e8e5c67cdejanj break; 20734ff174f3cef6e6058385c0a404572d5e8e5c67cdejanj case RSQRTS: 2084931c0dbc3912b97beb3784122d1ea7825a2c882petarj#if (__mips==32) && (__mips_isa_rev>=2) 20934ff174f3cef6e6058385c0a404572d5e8e5c67cdejanj UNOPff("rsqrt.s"); 21034ff174f3cef6e6058385c0a404572d5e8e5c67cdejanj printf("%s %f %f\n", flt_art_op_names[op], fd_f, fs_f[i]); 2114931c0dbc3912b97beb3784122d1ea7825a2c882petarj#endif 21234ff174f3cef6e6058385c0a404572d5e8e5c67cdejanj break; 21334ff174f3cef6e6058385c0a404572d5e8e5c67cdejanj case RSQRTD: 2144931c0dbc3912b97beb3784122d1ea7825a2c882petarj#if (__mips==32) && (__mips_isa_rev>=2) 21534ff174f3cef6e6058385c0a404572d5e8e5c67cdejanj UNOPdd("rsqrt.d"); 21634ff174f3cef6e6058385c0a404572d5e8e5c67cdejanj printf("%s %lf %lf\n", flt_art_op_names[op], fd_d, fs_d[i]); 2174931c0dbc3912b97beb3784122d1ea7825a2c882petarj#endif 21834ff174f3cef6e6058385c0a404572d5e8e5c67cdejanj break; 21934ff174f3cef6e6058385c0a404572d5e8e5c67cdejanj default: 22034ff174f3cef6e6058385c0a404572d5e8e5c67cdejanj printf("error\n"); 22134ff174f3cef6e6058385c0a404572d5e8e5c67cdejanj break; 22234ff174f3cef6e6058385c0a404572d5e8e5c67cdejanj } 22334ff174f3cef6e6058385c0a404572d5e8e5c67cdejanj } 224e584b0e99b31e6d257cc58c630cd6067550539e3sewardj } 225e584b0e99b31e6d257cc58c630cd6067550539e3sewardj return 0; 226e584b0e99b31e6d257cc58c630cd6067550539e3sewardj} 227e584b0e99b31e6d257cc58c630cd6067550539e3sewardj 228e584b0e99b31e6d257cc58c630cd6067550539e3sewardjint main() 229e584b0e99b31e6d257cc58c630cd6067550539e3sewardj{ 230e584b0e99b31e6d257cc58c630cd6067550539e3sewardj flt_art_op_t op; 231e584b0e99b31e6d257cc58c630cd6067550539e3sewardj 232e584b0e99b31e6d257cc58c630cd6067550539e3sewardj printf("-------------------------- %s --------------------------\n", 233e584b0e99b31e6d257cc58c630cd6067550539e3sewardj "test FPU Arithmetic Operations"); 234e584b0e99b31e6d257cc58c630cd6067550539e3sewardj for (op = ABSS; op <= RECIPD; op++) { 235e584b0e99b31e6d257cc58c630cd6067550539e3sewardj arithmeticOperations(op); 236e584b0e99b31e6d257cc58c630cd6067550539e3sewardj } 237e584b0e99b31e6d257cc58c630cd6067550539e3sewardj 238e584b0e99b31e6d257cc58c630cd6067550539e3sewardj return 0; 239e584b0e99b31e6d257cc58c630cd6067550539e3sewardj} 240a0664b9ca67b594bd6f570a61d3301167a24750cElliott Hughes#else 241a0664b9ca67b594bd6f570a61d3301167a24750cElliott Hughesint main() { 242a0664b9ca67b594bd6f570a61d3301167a24750cElliott Hughes return 0; 243a0664b9ca67b594bd6f570a61d3301167a24750cElliott Hughes} 244a0664b9ca67b594bd6f570a61d3301167a24750cElliott Hughes#endif 245