URL
https://opencores.org/ocsvn/openrisc/openrisc/trunk
Subversion Repositories openrisc
Compare Revisions
- This comparison shows the changes necessary to convert path
/openrisc/tags/gnu-dev/fsf-gcc-snapshot-1-mar-12/or1k-gcc/libgcc/config/tilegx
- from Rev 734 to Rev 783
- ↔ Reverse comparison
Rev 734 → Rev 783
/sfp-machine.h
0,0 → 1,5
#ifdef __tilegx32__ |
#include "config/tilegx/sfp-machine32.h" |
#else |
#include "config/tilegx/sfp-machine64.h" |
#endif |
/t-crtstuff
0,0 → 1,4
# crtend*.o cannot be compiled without -fno-asynchronous-unwind-tables, |
# because then __FRAME_END__ might not be the last thing in .eh_frame |
# section. |
CRTSTUFF_T_CFLAGS += -fno-asynchronous-unwind-tables |
/t-softfp
0,0 → 1,4
softfp_int_modes += ti |
/sfp-machine32.h
0,0 → 1,61
#define _FP_W_TYPE_SIZE 32 |
#define _FP_W_TYPE unsigned long |
#define _FP_WS_TYPE signed long |
#define _FP_I_TYPE long |
|
typedef int TItype __attribute__ ((mode (TI))); |
typedef unsigned int UTItype __attribute__ ((mode (TI))); |
|
#define TI_BITS (__CHAR_BIT__ * (int)sizeof(TItype)) |
|
/* The type of the result of a floating point comparison. This must |
match `__libgcc_cmp_return__' in GCC for the target. */ |
typedef int __gcc_CMPtype __attribute__ ((mode (__libgcc_cmp_return__))); |
#define CMPtype __gcc_CMPtype |
|
#define _FP_MUL_MEAT_S(R,X,Y) \ |
_FP_MUL_MEAT_1_wide(_FP_WFRACBITS_S,R,X,Y,umul_ppmm) |
#define _FP_MUL_MEAT_D(R,X,Y) \ |
_FP_MUL_MEAT_2_wide(_FP_WFRACBITS_D,R,X,Y,umul_ppmm) |
#define _FP_MUL_MEAT_Q(R,X,Y) \ |
_FP_MUL_MEAT_4_wide(_FP_WFRACBITS_Q,R,X,Y,umul_ppmm) |
|
#define _FP_DIV_MEAT_S(R,X,Y) _FP_DIV_MEAT_1_loop(S,R,X,Y) |
#define _FP_DIV_MEAT_D(R,X,Y) _FP_DIV_MEAT_2_udiv(D,R,X,Y) |
#define _FP_DIV_MEAT_Q(R,X,Y) _FP_DIV_MEAT_4_udiv(Q,R,X,Y) |
|
#define _FP_NANFRAC_S _FP_QNANBIT_S |
#define _FP_NANFRAC_D _FP_QNANBIT_D, 0 |
#define _FP_NANFRAC_Q _FP_QNANBIT_Q, 0, 0, 0 |
#define _FP_NANSIGN_S 1 |
#define _FP_NANSIGN_D 1 |
#define _FP_NANSIGN_Q 1 |
|
#define _FP_KEEPNANFRACP 1 |
|
#define _FP_CHOOSENAN(fs, wc, R, X, Y, OP) \ |
do { \ |
if ((_FP_FRAC_HIGH_RAW_##fs(X) & _FP_QNANBIT_##fs) \ |
&& !(_FP_FRAC_HIGH_RAW_##fs(Y) & _FP_QNANBIT_##fs)) \ |
{ \ |
R##_s = Y##_s; \ |
_FP_FRAC_COPY_##wc(R,Y); \ |
} \ |
else \ |
{ \ |
R##_s = X##_s; \ |
_FP_FRAC_COPY_##wc(R,X); \ |
} \ |
R##_c = FP_CLS_NAN; \ |
} while (0) |
|
#define __LITTLE_ENDIAN 1234 |
#define __BIG_ENDIAN 4321 |
|
#define __BYTE_ORDER __LITTLE_ENDIAN |
|
/* Define ALIASNAME as a strong alias for NAME. */ |
# define strong_alias(name, aliasname) _strong_alias(name, aliasname) |
# define _strong_alias(name, aliasname) \ |
extern __typeof (name) aliasname __attribute__ ((alias (#name))); |
|
/sfp-machine64.h
0,0 → 1,61
#define _FP_W_TYPE_SIZE 64 |
#define _FP_W_TYPE unsigned long |
#define _FP_WS_TYPE signed long |
#define _FP_I_TYPE long |
|
typedef int TItype __attribute__ ((mode (TI))); |
typedef unsigned int UTItype __attribute__ ((mode (TI))); |
|
#define TI_BITS (__CHAR_BIT__ * (int)sizeof(TItype)) |
|
/* The type of the result of a floating point comparison. This must |
match `__libgcc_cmp_return__' in GCC for the target. */ |
typedef int __gcc_CMPtype __attribute__ ((mode (__libgcc_cmp_return__))); |
#define CMPtype __gcc_CMPtype |
|
#define _FP_MUL_MEAT_S(R,X,Y) \ |
_FP_MUL_MEAT_1_imm(_FP_WFRACBITS_S,R,X,Y) |
#define _FP_MUL_MEAT_D(R,X,Y) \ |
_FP_MUL_MEAT_1_wide(_FP_WFRACBITS_D,R,X,Y,umul_ppmm) |
#define _FP_MUL_MEAT_Q(R,X,Y) \ |
_FP_MUL_MEAT_2_wide(_FP_WFRACBITS_D,R,X,Y,umul_ppmm) |
|
#define _FP_DIV_MEAT_S(R,X,Y) _FP_DIV_MEAT_1_imm(S,R,X,Y,_FP_DIV_HELP_imm) |
#define _FP_DIV_MEAT_D(R,X,Y) _FP_DIV_MEAT_1_udiv_norm(D,R,X,Y) |
#define _FP_DIV_MEAT_Q(R,X,Y) _FP_DIV_MEAT_2_udiv(Q,R,X,Y) |
|
#define _FP_NANFRAC_S _FP_QNANBIT_S |
#define _FP_NANFRAC_D _FP_QNANBIT_D |
#define _FP_NANFRAC_Q _FP_QNANBIT_Q, 0 |
#define _FP_NANSIGN_S 1 |
#define _FP_NANSIGN_D 1 |
#define _FP_NANSIGN_Q 1 |
|
#define _FP_KEEPNANFRACP 1 |
|
#define _FP_CHOOSENAN(fs, wc, R, X, Y, OP) \ |
do { \ |
if ((_FP_FRAC_HIGH_RAW_##fs(X) & _FP_QNANBIT_##fs) \ |
&& !(_FP_FRAC_HIGH_RAW_##fs(Y) & _FP_QNANBIT_##fs)) \ |
{ \ |
R##_s = Y##_s; \ |
_FP_FRAC_COPY_##wc(R,Y); \ |
} \ |
else \ |
{ \ |
R##_s = X##_s; \ |
_FP_FRAC_COPY_##wc(R,X); \ |
} \ |
R##_c = FP_CLS_NAN; \ |
} while (0) |
|
#define __LITTLE_ENDIAN 1234 |
#define __BIG_ENDIAN 4321 |
|
#define __BYTE_ORDER __LITTLE_ENDIAN |
|
/* Define ALIASNAME as a strong alias for NAME. */ |
# define strong_alias(name, aliasname) _strong_alias(name, aliasname) |
# define _strong_alias(name, aliasname) \ |
extern __typeof (name) aliasname __attribute__ ((alias (#name))); |
|
/t-tilegx
0,0 → 1,26
LIB2ADD += \ |
$(srcdir)/config/tilepro/atomic.c |
|
SOFTDIVIDE_FUNCS := \ |
_tile_udivsi3 \ |
_tile_divsi3 \ |
_tile_udivdi3 \ |
_tile_divdi3 \ |
_tile_umodsi3 \ |
_tile_modsi3 \ |
_tile_umoddi3 \ |
_tile_moddi3 |
|
softdivide-o = $(patsubst %,%$(objext),$(SOFTDIVIDE_FUNCS)) |
$(softdivide-o): %$(objext): $(srcdir)/config/tilepro/softdivide.c |
$(gcc_compile) -ffunction-sections -DMAYBE_STATIC= -DL$* -c $< \ |
$(vis_hide) |
libgcc-objects += $(softdivide-o) |
|
ifeq ($(enable_shared),yes) |
softdivide-s-o = $(patsubst %,%_s$(objext),$(SOFTDIVIDE_FUNCS)) |
$(softdivide-s-o): %_s$(objext): $(srcdir)/config/tilepro/softdivide.c |
$(gcc_s_compile) -ffunction-sections -DMAYBE_STATIC= -DL$* -c $< |
libgcc-s-objects += $(softdivide-s-o) |
libgcc-eh-objects += _tile_divdi3.o _tile_umoddi3.o |
endif |