Mercurial > hg > CbC > CbC_gcc
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); |