From: Richard Stallman Date: Fri, 15 May 1992 20:24:03 +0000 (+0000) Subject: *** empty log message *** X-Git-Tag: misc/cutover-egcs-0~12940 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=b505fab860138fe421b466f6e89cbe4a6a419fca;p=thirdparty%2Fgcc.git *** empty log message *** From-SVN: r991 --- diff --git a/gcc/config/i860/fx2800.h b/gcc/config/i860/fx2800.h index d23f2f6b94d9..993bd60908e7 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 51175c78c000..f4ecdb25e47e 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;