Changeset 380
- Timestamp:
- Jul 15, 2003, 4:51:29 PM (22 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/gcc/gcc/config/i386/i386.c
-
Property cvs2svn:cvs-rev
changed from
1.2
to1.3
r379 r380 49 49 50 50 /* Processor costs (relative to an add) */ 51 static const 51 static const 52 52 struct processor_costs size_cost = { /* costs for tunning for size */ 53 53 2, /* cost of an add instruction */ … … 86 86 }; 87 87 /* Processor costs (relative to an add) */ 88 static const 88 static const 89 89 struct processor_costs i386_cost = { /* 386 specific costs */ 90 90 1, /* cost of an add instruction */ … … 123 123 }; 124 124 125 static const 125 static const 126 126 struct processor_costs i486_cost = { /* 486 specific costs */ 127 127 1, /* cost of an add instruction */ … … 160 160 }; 161 161 162 static const 162 static const 163 163 struct processor_costs pentium_cost = { 164 164 1, /* cost of an add instruction */ … … 197 197 }; 198 198 199 static const 199 static const 200 200 struct processor_costs pentiumpro_cost = { 201 201 1, /* cost of an add instruction */ … … 234 234 }; 235 235 236 static const 236 static const 237 237 struct processor_costs k6_cost = { 238 238 1, /* cost of an add instruction */ … … 271 271 }; 272 272 273 static const 273 static const 274 274 struct processor_costs athlon_cost = { 275 275 1, /* cost of an add instruction */ … … 308 308 }; 309 309 310 static const 310 static const 311 311 struct processor_costs pentium4_cost = { 312 312 1, /* cost of an add instruction */ … … 1209 1209 ix86_fpmath = FPMATH_SSE | FPMATH_387; 1210 1210 } 1211 else 1211 else 1212 1212 error ("bad value (%s) for -mfpmath= switch", ix86_fpmath_string); 1213 1213 } … … 2451 2451 type_decl = build_decl (TYPE_DECL, get_identifier ("__va_list_tag"), record); 2452 2452 2453 f_gpr = build_decl (FIELD_DECL, get_identifier ("gp_offset"), 2453 f_gpr = build_decl (FIELD_DECL, get_identifier ("gp_offset"), 2454 2454 unsigned_type_node); 2455 f_fpr = build_decl (FIELD_DECL, get_identifier ("fp_offset"), 2455 f_fpr = build_decl (FIELD_DECL, get_identifier ("fp_offset"), 2456 2456 unsigned_type_node); 2457 2457 f_ovf = build_decl (FIELD_DECL, get_identifier ("overflow_arg_area"), … … 2479 2479 2480 2480 /* Perform any needed actions needed for a function that is receiving a 2481 variable number of arguments. 2481 variable number of arguments. 2482 2482 2483 2483 CUM is as above. … … 3061 3061 return 1; 3062 3062 } 3063 else 3063 else 3064 3064 { 3065 3065 if (GET_CODE (op) == UNSPEC) … … 3099 3099 3100 3100 /* There is, however, a not insubstantial body of code in the rest of 3101 the compiler that assumes it can just stick the results of 3101 the compiler that assumes it can just stick the results of 3102 3102 ASM_GENERATE_INTERNAL_LABEL in a symbol_ref and have done. */ 3103 3103 /* ??? This is a hack. Should update the body of the compiler to … … 4865 4865 return local_symbolic_operand (XVECEXP (disp, 0, 0), Pmode); 4866 4866 } 4867 4867 4868 4868 return 0; 4869 4869 } … … 6056 6056 /* Like above, but reverse condition */ 6057 6057 case 'c': 6058 /* Check to see if argument to %c is really a constant 6058 /* Check to see if argument to %c is really a constant 6059 6059 and not a condition code which needs to be reversed. */ 6060 6060 if (GET_RTX_CLASS (GET_CODE (x)) != '<') … … 6645 6645 emit_insn (gen_x86_fnstcw_1 (normal)); 6646 6646 emit_move_insn (reg, normal); 6647 #ifdef EMX /* #563: On OS/2 we need to mask exceptions. */ 6648 emit_insn (gen_iorhi3 (reg, reg, GEN_INT (0xc3f))); 6649 #else 6647 6650 if (!TARGET_PARTIAL_REG_STALL && !optimize_size 6648 6651 && !TARGET_64BIT) … … 6650 6653 else 6651 6654 emit_insn (gen_iorhi3 (reg, reg, GEN_INT (0xc00))); 6655 #endif 6652 6656 emit_move_insn (round_down, reg); 6653 6657 } … … 6682 6686 else 6683 6687 output_asm_insn ("fist%z0\t%0", operands); 6688 #ifdef EMX /* #563: On OS/2 we need to clear exception flags. */ 6689 output_asm_insn ("fnclex", operands); 6690 #endif 6684 6691 output_asm_insn ("fldcw\t%2", operands); 6685 6692 … … 6976 6983 6977 6984 emit_insn (gen_rtx_SET (VOIDmode, operands[0], operands[1])); 6978 } 6985 } 6979 6986 6980 6987 /* Attempt to expand a binary operator. Make the expansion closer to the … … 11633 11640 } 11634 11641 11635 /* In type_for_mode we restrict the ability to create TImode types 11642 /* In type_for_mode we restrict the ability to create TImode types 11636 11643 to hosts with 64-bit H_W_I. So we've defined the SSE logicals 11637 11644 to have a V4SFmode signature. Convert them in-place to TImode. */ … … 11763 11770 if (! (*insn_data[icode].operand[1].predicate) (op0, mode0)) 11764 11771 op0 = copy_to_mode_reg (mode0, op0); 11765 11772 11766 11773 op1 = op0; 11767 11774 if (! (*insn_data[icode].operand[2].predicate) (op1, mode0)) 11768 11775 op1 = copy_to_mode_reg (mode0, op1); 11769 11776 11770 11777 pat = GEN_FCN (icode) (target, op0, op1); 11771 11778 if (! pat) … … 12470 12477 { 12471 12478 /* In case we require secondary memory, compute cost of the store followed 12472 by load. In order to avoid bad register allocation choices, we need 12479 by load. In order to avoid bad register allocation choices, we need 12473 12480 for this to be *at least* as high as the symmetric MEMORY_MOVE_COST. */ 12474 12481 … … 12481 12488 cost += MAX (MEMORY_MOVE_COST (mode, class2, 0), 12482 12489 MEMORY_MOVE_COST (mode, class2, 1)); 12483 12490 12484 12491 /* In case of copying from general_purpose_register we may emit multiple 12485 12492 stores followed by single load causing memory size mismatch stall. … … 12669 12676 for (i = FIRST_STACK_REG; i <= LAST_STACK_REG; i++) 12670 12677 reg_alloc_order [pos++] = i; 12671 12678 12672 12679 /* SSE registers. */ 12673 12680 for (i = FIRST_SSE_REG; i <= LAST_SSE_REG; i++) -
Property cvs2svn:cvs-rev
changed from
Note:
See TracChangeset
for help on using the changeset viewer.