From b505fab860138fe421b466f6e89cbe4a6a419fca Mon Sep 17 00:00:00 2001 From: Richard Stallman Date: Fri, 15 May 1992 20:24:03 +0000 Subject: [PATCH] *** empty log message *** From-SVN: r991 --- gcc/config/i860/fx2800.h | 39 +++++++++++++++++++++++++-------------- gcc/config/i860/i860.c | 10 ++++++---- 2 files changed, 31 insertions(+), 18 deletions(-) diff --git a/gcc/config/i860/fx2800.h b/gcc/config/i860/fx2800.h index d23f2f6b94d..993bd60908e 100644 --- a/gcc/config/i860/fx2800.h +++ b/gcc/config/i860/fx2800.h @@ -107,26 +107,37 @@ the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */ tree decl; \ int i; \ \ - for (i=1;*dtyps[i];i++) { \ - decl = IDENTIFIER_GLOBAL_VALUE (get_identifier (dtyps[i])); \ - if (decl) { \ + for (i=1;*dtyps[i];i++) \ + for (decl = syms; decl; decl = TREE_CHAIN(decl)) \ + if ((TREE_CODE (decl) == TYPE_DECL) && \ + !strcmp(IDENTIFIER_POINTER(DECL_NAME(decl)), dtyps[i])) { \ TYPE_SYMTAB_ADDRESS (TREE_TYPE (decl)) = i; \ typevec[i] = TYPE_DEFINED; \ dbxout_symbol (decl, 0); \ + break; \ } \ - } \ \ - decl = IDENTIFIER_GLOBAL_VALUE (get_identifier ("long int")); \ - TYPE_SYMTAB_ADDRESS (TREE_TYPE (decl)) = i; \ - typevec[i] = TYPE_DEFINED; \ - fprintf(asmfile,".stab \"long int:t%d=3\",0,0x%x,0,0\n",i++,N_LSYM); \ - TREE_ASM_WRITTEN (decl) = 1; \ + for (decl = syms; decl; decl = TREE_CHAIN(decl)) \ + if ((TREE_CODE (decl) == TYPE_DECL) && \ + !strcmp(IDENTIFIER_POINTER(DECL_NAME(decl)),"long int")) { \ + TYPE_SYMTAB_ADDRESS (TREE_TYPE (decl)) = i; \ + typevec[i] = TYPE_DEFINED; \ + fprintf(asmfile,".stab \"long int:t%d=3\",0,0x%x,0,0\n", \ + i++,N_LSYM); \ + TREE_ASM_WRITTEN (decl) = 1; \ + break; \ + } \ \ - decl = IDENTIFIER_GLOBAL_VALUE (get_identifier ("long unsigned int"));\ - TYPE_SYMTAB_ADDRESS (TREE_TYPE (decl)) = i; \ - typevec[i] = TYPE_DEFINED; \ - fprintf(asmfile,".stab \"long unsigned int:t%d=17\",0,0x%x,0,0\n",i++,N_LSYM);\ - TREE_ASM_WRITTEN (decl) = 1; \ + for (decl = syms; decl; decl = TREE_CHAIN(decl)) \ + if ((TREE_CODE (decl) == TYPE_DECL) && !strcmp( \ + IDENTIFIER_POINTER(DECL_NAME(decl)),"long unsigned int")) { \ + TYPE_SYMTAB_ADDRESS (TREE_TYPE (decl)) = i; \ + typevec[i] = TYPE_DEFINED; \ + fprintf(asmfile,".stab \"long unsigned int:t%d=17\",0,0x%x,0,0\n",\ + i++,N_LSYM); \ + TREE_ASM_WRITTEN (decl) = 1; \ + break; \ + } \ next_type_number = i; }; /* Alliant dbx doesn't understand split names... */ diff --git a/gcc/config/i860/i860.c b/gcc/config/i860/i860.c index 51175c78c00..f4ecdb25e47 100644 --- a/gcc/config/i860/i860.c +++ b/gcc/config/i860/i860.c @@ -669,12 +669,14 @@ singlemove_string (operands) } if (GET_CODE (operands[1]) == CONST_INT) { + if (operands[1] == const0_rtx) + return "mov %?r0,%0"; if((INTVAL (operands[1]) & 0xffff0000) == 0) return "or %L1,%?r0,%0"; + if((INTVAL (operands[1]) & 0xffff8000) == 0xffff8000) + return "adds %1,%?r0,%0"; if((INTVAL (operands[1]) & 0x0000ffff) == 0) return "orh %H1,%?r0,%0"; - if (operands[1] == const0_rtx) - return "mov %?r0,%0"; } return "mov %1,%0"; } @@ -1196,7 +1198,7 @@ output_size_for_block_move (size, reg, align) #if 1 cc_status.flags &= ~ CC_KNOW_HI_R31; - output_asm_insn ("mov %1,%0", xoperands); + output_asm_insn (singlemove_string (xoperands), xoperands); #else if (GET_CODE (size) == REG) output_asm_insn ("sub %2,%1,%0", xoperands); @@ -1621,7 +1623,7 @@ sfmode_constant_to_ulong (x) abort (); #if TARGET_FLOAT_FORMAT != HOST_FLOAT_FORMAT -# error IEEE emulation needed + error IEEE emulation needed #endif REAL_VALUE_FROM_CONST_DOUBLE (d, x); u2.f = d; -- 2.30.2