diff options
author | rsandifo <rsandifo@138bc75d-0d04-0410-961f-82ee72b054a4> | 2012-01-24 19:06:38 +0000 |
---|---|---|
committer | rsandifo <rsandifo@138bc75d-0d04-0410-961f-82ee72b054a4> | 2012-01-24 19:06:38 +0000 |
commit | 402f6a9e6b225e401135286881427884dad42680 (patch) | |
tree | 0437cd6825d81c4a05099372f1111220a0a2e1ba /gcc/config/m32c/m32c.c | |
parent | 376a287d5002e5e9a5ed836fd2104d6f0292a09b (diff) | |
download | gcc-402f6a9e6b225e401135286881427884dad42680.tar.gz |
gcc/
* doc/rtl.texi (MEM_IN_STRUCT_P, MEM_SCALAR_P): Delete.
(in_struct, return_val): Remove MEM documentation.
* rtl.h (rtx_def): Remove MEM meanings from in_struct and return_val.
(MEM_IN_STRUCT_P, MEM_SCALAR_P): Delete.
(MEM_COPY_ATTRIBUTES): Remove references to MEM_IN_STRUCT_P
and MEM_SCALAR.
* emit-rtl.c (set_mem_attributes_minus_bitpos): Likewise.
* cfgexpand.c (add_alias_set_conflicts): Likewise.
* expr.c (store_field): Likewise.
* function.c (assign_stack_temp_for_type): Likewise.
* ifcvt.c (noce_try_cmove_arith): Likewise.
* reload1.c (reload): Likewise.
* config/alpha/alpha.c (alpha_set_memflags_1): Likewise.
(alpha_set_memflags): Likewise.
* config/m32c/m32c.c (m32c_immd_dbl_mov): Nullify.
gcc/testsuite/
* gcc.dg/memcpy-4.c: Don't expect /s on MEMs.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@183486 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/config/m32c/m32c.c')
-rw-r--r-- | gcc/config/m32c/m32c.c | 90 |
1 files changed, 3 insertions, 87 deletions
diff --git a/gcc/config/m32c/m32c.c b/gcc/config/m32c/m32c.c index d86a618b028..57586474d9c 100644 --- a/gcc/config/m32c/m32c.c +++ b/gcc/config/m32c/m32c.c @@ -3475,95 +3475,11 @@ m32c_mov_ok (rtx * operands, enum machine_mode mode ATTRIBUTE_UNUSED) for moving an immediate double data to a double data type variable location, can be combined into single SImode mov instruction. */ bool -m32c_immd_dbl_mov (rtx * operands, +m32c_immd_dbl_mov (rtx * operands ATTRIBUTE_UNUSED, enum machine_mode mode ATTRIBUTE_UNUSED) { - int flag = 0, okflag = 0, offset1 = 0, offset2 = 0, offsetsign = 0; - const char *str1; - const char *str2; - - if (GET_CODE (XEXP (operands[0], 0)) == SYMBOL_REF - && MEM_SCALAR_P (operands[0]) - && !MEM_IN_STRUCT_P (operands[0]) - && GET_CODE (XEXP (operands[2], 0)) == CONST - && GET_CODE (XEXP (XEXP (operands[2], 0), 0)) == PLUS - && GET_CODE (XEXP (XEXP (XEXP (operands[2], 0), 0), 0)) == SYMBOL_REF - && GET_CODE (XEXP (XEXP (XEXP (operands[2], 0), 0), 1)) == CONST_INT - && MEM_SCALAR_P (operands[2]) - && !MEM_IN_STRUCT_P (operands[2])) - flag = 1; - - else if (GET_CODE (XEXP (operands[0], 0)) == CONST - && GET_CODE (XEXP (XEXP (operands[0], 0), 0)) == PLUS - && GET_CODE (XEXP (XEXP (XEXP (operands[0], 0), 0), 0)) == SYMBOL_REF - && MEM_SCALAR_P (operands[0]) - && !MEM_IN_STRUCT_P (operands[0]) - && !(INTVAL (XEXP (XEXP (XEXP (operands[0], 0), 0), 1)) %4) - && GET_CODE (XEXP (operands[2], 0)) == CONST - && GET_CODE (XEXP (XEXP (operands[2], 0), 0)) == PLUS - && GET_CODE (XEXP (XEXP (XEXP (operands[2], 0), 0), 0)) == SYMBOL_REF - && MEM_SCALAR_P (operands[2]) - && !MEM_IN_STRUCT_P (operands[2])) - flag = 2; - - else if (GET_CODE (XEXP (operands[0], 0)) == PLUS - && GET_CODE (XEXP (XEXP (operands[0], 0), 0)) == REG - && REGNO (XEXP (XEXP (operands[0], 0), 0)) == FB_REGNO - && GET_CODE (XEXP (XEXP (operands[0], 0), 1)) == CONST_INT - && MEM_SCALAR_P (operands[0]) - && !MEM_IN_STRUCT_P (operands[0]) - && !(INTVAL (XEXP (XEXP (operands[0], 0), 1)) %4) - && REGNO (XEXP (XEXP (operands[2], 0), 0)) == FB_REGNO - && GET_CODE (XEXP (XEXP (operands[2], 0), 1)) == CONST_INT - && MEM_SCALAR_P (operands[2]) - && !MEM_IN_STRUCT_P (operands[2])) - flag = 3; - - else - return false; - - switch (flag) - { - case 1: - str1 = XSTR (XEXP (operands[0], 0), 0); - str2 = XSTR (XEXP (XEXP (XEXP (operands[2], 0), 0), 0), 0); - if (strcmp (str1, str2) == 0) - okflag = 1; - else - okflag = 0; - break; - case 2: - str1 = XSTR (XEXP (XEXP (XEXP (operands[0], 0), 0), 0), 0); - str2 = XSTR (XEXP (XEXP (XEXP (operands[2], 0), 0), 0), 0); - if (strcmp(str1,str2) == 0) - okflag = 1; - else - okflag = 0; - break; - case 3: - offset1 = INTVAL (XEXP (XEXP (operands[0], 0), 1)); - offset2 = INTVAL (XEXP (XEXP (operands[2], 0), 1)); - offsetsign = offset1 >> ((sizeof (offset1) * 8) -1); - if (((offset2-offset1) == 2) && offsetsign != 0) - okflag = 1; - else - okflag = 0; - break; - default: - okflag = 0; - } - - if (okflag == 1) - { - HOST_WIDE_INT val; - operands[4] = gen_rtx_MEM (SImode, XEXP (operands[0], 0)); - - val = (INTVAL (operands[3]) << 16) + (INTVAL (operands[1]) & 0xFFFF); - operands[5] = gen_rtx_CONST_INT (VOIDmode, val); - - return true; - } - + /* ??? This relied on the now-defunct MEM_SCALAR and MEM_IN_STRUCT_P + flags. */ return false; } |