comparison gcc/config/alpha/alpha.c @ 36:855418dad1a3

gcc-4.4-20091020
author e075725
date Tue, 22 Dec 2009 21:19:31 +0900
parents a06113de4d67
children 3bfb6c00c1e0
comparison
equal deleted inserted replaced
19:58ad6c70ea60 36:855418dad1a3
2050 enum machine_mode mode = GET_MODE (x); 2050 enum machine_mode mode = GET_MODE (x);
2051 HOST_WIDE_INT i0, i1; 2051 HOST_WIDE_INT i0, i1;
2052 2052
2053 switch (GET_CODE (x)) 2053 switch (GET_CODE (x))
2054 { 2054 {
2055 case CONST:
2056 case LABEL_REF: 2055 case LABEL_REF:
2057 case HIGH: 2056 case HIGH:
2058 return true; 2057 return true;
2058
2059 case CONST:
2060 if (GET_CODE (XEXP (x, 0)) == PLUS
2061 && GET_CODE (XEXP (XEXP (x, 0), 1)) == CONST_INT)
2062 x = XEXP (XEXP (x, 0), 0);
2063 else
2064 return true;
2065
2066 if (GET_CODE (x) != SYMBOL_REF)
2067 return true;
2068
2069 /* FALLTHRU */
2059 2070
2060 case SYMBOL_REF: 2071 case SYMBOL_REF:
2061 /* TLS symbols are never valid. */ 2072 /* TLS symbols are never valid. */
2062 return SYMBOL_REF_TLS_MODEL (x) == 0; 2073 return SYMBOL_REF_TLS_MODEL (x) == 0;
2063 2074
3540 break; 3551 break;
3541 case 4: 3552 case 4:
3542 emit_insn (gen_insll_le (insl, gen_lowpart (SImode, src), addr)); 3553 emit_insn (gen_insll_le (insl, gen_lowpart (SImode, src), addr));
3543 break; 3554 break;
3544 case 8: 3555 case 8:
3545 emit_insn (gen_insql_le (insl, src, addr)); 3556 emit_insn (gen_insql_le (insl, gen_lowpart (DImode, src), addr));
3546 break; 3557 break;
3547 } 3558 }
3548 } 3559 }
3549 3560
3550 emit_insn (gen_mskxh (dsth, dsth, GEN_INT (size*8), addr)); 3561 emit_insn (gen_mskxh (dsth, dsth, GEN_INT (size*8), addr));
8277 ensure that the return address always remains in the caller's code range, 8288 ensure that the return address always remains in the caller's code range,
8278 as not doing so might confuse unwinding engines. */ 8289 as not doing so might confuse unwinding engines. */
8279 insn = get_last_insn (); 8290 insn = get_last_insn ();
8280 if (!INSN_P (insn)) 8291 if (!INSN_P (insn))
8281 insn = prev_active_insn (insn); 8292 insn = prev_active_insn (insn);
8282 if (GET_CODE (insn) == CALL_INSN) 8293 if (insn && GET_CODE (insn) == CALL_INSN)
8283 output_asm_insn (get_insn_template (CODE_FOR_nop, NULL), NULL); 8294 output_asm_insn (get_insn_template (CODE_FOR_nop, NULL), NULL);
8284 8295
8285 #if TARGET_ABI_OSF 8296 #if TARGET_ABI_OSF
8286 if (cfun->is_thunk) 8297 if (cfun->is_thunk)
8287 free_after_compilation (cfun); 8298 free_after_compilation (cfun);