diff options
Diffstat (limited to 'meta/recipes-devtools/gcc/gcc-4.5.0/gcc-pr43698-arm-rev-instr.patch')
| -rw-r--r-- | meta/recipes-devtools/gcc/gcc-4.5.0/gcc-pr43698-arm-rev-instr.patch | 117 |
1 files changed, 0 insertions, 117 deletions
diff --git a/meta/recipes-devtools/gcc/gcc-4.5.0/gcc-pr43698-arm-rev-instr.patch b/meta/recipes-devtools/gcc/gcc-4.5.0/gcc-pr43698-arm-rev-instr.patch deleted file mode 100644 index 61c883e1ff..0000000000 --- a/meta/recipes-devtools/gcc/gcc-4.5.0/gcc-pr43698-arm-rev-instr.patch +++ /dev/null | |||
| @@ -1,117 +0,0 @@ | |||
| 1 | backport http://gcc.gnu.org/viewcvs?view=revision&revision=162404 | ||
| 2 | from trunk | ||
| 3 | |||
| 4 | Which fixes http://gcc.gnu.org/bugzilla/show_bug.cgi?id=43698 | ||
| 5 | |||
| 6 | 2010-07-22 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com> | ||
| 7 | |||
| 8 | PR target/43698 | ||
| 9 | * config/arm/arm.md: Split arm_rev into *arm_rev | ||
| 10 | and *thumb1_rev. Set *arm_rev to be predicable. | ||
| 11 | |||
| 12 | 2010-07-22 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com> | ||
| 13 | |||
| 14 | PR target/43698 | ||
| 15 | * gcc.target/arm/pr43698.c: New test. | ||
| 16 | |||
| 17 | |||
| 18 | /scratch/oe/sysroots/i686-linux/usr/share/quilt/compat/date | ||
| 19 | Usage: date [OPTION]... [+FORMAT] | ||
| 20 | Display the current time in the given FORMAT. | ||
| 21 | |||
| 22 | -d, --date=STRING display time described by STRING, not `now' | ||
| 23 | -f, --file=DATEFILE like --date once for each line of DATEFILE | ||
| 24 | -R, --rfc-822 output RFC-822 compliant date string | ||
| 25 | -u, --utc, --universal print or set Coordinated Universal Time | ||
| 26 | --help display this help and exit | ||
| 27 | date is /scratch/oe/sysroots/i686-linux/usr/share/quilt/compat/date | ||
| 28 | date is /scratch/oe/sysroots/i686-linux/usr/share/quilt/compat/date | ||
| 29 | date is /bin/date | ||
| 30 | date is /scratch/oe/sysroots/i686-linux/usr/share/quilt/compat/date | ||
| 31 | date is /scratch/oe/sysroots/i686-linux/usr/share/quilt/compat/date | ||
| 32 | date is /bin/date | ||
| 33 | date is /scratch/oe/sysroots/i686-linux/usr/share/quilt/compat/date | ||
| 34 | date is /scratch/oe/sysroots/i686-linux/usr/share/quilt/compat/date | ||
| 35 | date is /bin/date | ||
| 36 | date is /scratch/oe/sysroots/i686-linux/usr/share/quilt/compat/date | ||
| 37 | date is /scratch/oe/sysroots/i686-linux/usr/share/quilt/compat/date | ||
| 38 | date is /bin/date | ||
| 39 | date | ||
| 40 | Khem | ||
| 41 | Index: gcc-4.5/gcc/config/arm/arm.md | ||
| 42 | =================================================================== | ||
| 43 | --- gcc-4.5.orig/gcc/config/arm/arm.md 2010-07-20 20:31:25.000000000 -0700 | ||
| 44 | +++ gcc-4.5/gcc/config/arm/arm.md 2010-07-22 14:55:54.303169081 -0700 | ||
| 45 | @@ -11197,15 +11197,21 @@ | ||
| 46 | (set_attr "length" "4")] | ||
| 47 | ) | ||
| 48 | |||
| 49 | -(define_insn "arm_rev" | ||
| 50 | +(define_insn "*arm_rev" | ||
| 51 | [(set (match_operand:SI 0 "s_register_operand" "=r") | ||
| 52 | (bswap:SI (match_operand:SI 1 "s_register_operand" "r")))] | ||
| 53 | - "TARGET_EITHER && arm_arch6" | ||
| 54 | - "rev\t%0, %1" | ||
| 55 | - [(set (attr "length") | ||
| 56 | - (if_then_else (eq_attr "is_thumb" "yes") | ||
| 57 | - (const_int 2) | ||
| 58 | - (const_int 4)))] | ||
| 59 | + "TARGET_32BIT && arm_arch6" | ||
| 60 | + "rev%?\t%0, %1" | ||
| 61 | + [(set_attr "predicable" "yes") | ||
| 62 | + (set_attr "length" "4")] | ||
| 63 | +) | ||
| 64 | + | ||
| 65 | +(define_insn "*thumb1_rev" | ||
| 66 | + [(set (match_operand:SI 0 "s_register_operand" "=l") | ||
| 67 | + (bswap:SI (match_operand:SI 1 "s_register_operand" "l")))] | ||
| 68 | + "TARGET_THUMB1 && arm_arch6" | ||
| 69 | + "rev\t%0, %1" | ||
| 70 | + [(set_attr "length" "2")] | ||
| 71 | ) | ||
| 72 | |||
| 73 | (define_expand "arm_legacy_rev" | ||
| 74 | Index: gcc-4.5/gcc/testsuite/gcc.target/arm/pr43698.c | ||
| 75 | =================================================================== | ||
| 76 | --- /dev/null 1970-01-01 00:00:00.000000000 +0000 | ||
| 77 | +++ gcc-4.5/gcc/testsuite/gcc.target/arm/pr43698.c 2010-07-22 14:56:35.406670213 -0700 | ||
| 78 | @@ -0,0 +1,39 @@ | ||
| 79 | +/* { dg-do run } */ | ||
| 80 | +/* { dg-options "-Os -march=armv7-a" } */ | ||
| 81 | +#include <stdint.h> | ||
| 82 | +#include <stdlib.h> | ||
| 83 | + | ||
| 84 | + | ||
| 85 | +char do_reverse_endian = 0; | ||
| 86 | + | ||
| 87 | +# define bswap_32(x) \ | ||
| 88 | + ((((x) & 0xff000000) >> 24) | \ | ||
| 89 | + (((x) & 0x00ff0000) >> 8) | \ | ||
| 90 | + (((x) & 0x0000ff00) << 8) | \ | ||
| 91 | + (((x) & 0x000000ff) << 24)) | ||
| 92 | + | ||
| 93 | +#define EGET(X) \ | ||
| 94 | + (__extension__ ({ \ | ||
| 95 | + uint64_t __res; \ | ||
| 96 | + if (!do_reverse_endian) { __res = (X); \ | ||
| 97 | + } else if (sizeof(X) == 4) { __res = bswap_32((X)); \ | ||
| 98 | + } \ | ||
| 99 | + __res; \ | ||
| 100 | + })) | ||
| 101 | + | ||
| 102 | +void __attribute__((noinline)) X(char **phdr, char **data, int *phoff) | ||
| 103 | +{ | ||
| 104 | + *phdr = *data + EGET(*phoff); | ||
| 105 | +} | ||
| 106 | + | ||
| 107 | +int main() | ||
| 108 | +{ | ||
| 109 | + char *phdr; | ||
| 110 | + char *data = (char *)0x40164000; | ||
| 111 | + int phoff = 0x34; | ||
| 112 | + X(&phdr, &data, &phoff); | ||
| 113 | + if (phdr != (char *)0x40164034) | ||
| 114 | + abort (); | ||
| 115 | + exit (0); | ||
| 116 | +} | ||
| 117 | + | ||
