On 16/08/15 20:01, Mike Stump wrote:
On Jun 15, 2015, at 7:30 AM, Kyrill Tkachov wrote:
On 29/05/15 11:15, Kyrill Tkachov wrote:
On 29/05/15 10:08, Kyrill Tkachov wrote:
Hi Mike,
On 28/05/15 22:15, Mike Stump wrote:
So, the arm memcpy code of aligned data isn’t as good as it can be.
void
On Jun 15, 2015, at 7:30 AM, Kyrill Tkachov wrote:
>
> On 29/05/15 11:15, Kyrill Tkachov wrote:
>> On 29/05/15 10:08, Kyrill Tkachov wrote:
>>> Hi Mike,
>>>
>>> On 28/05/15 22:15, Mike Stump wrote:
So, the arm memcpy code of aligned data isn’t as good as it can be.
void *memcpy(v
d
>>>> dstoffset + j * UNITS_PER_WORD - dst_autoinc);
>>>> mem = adjust_automodify_address (dstbase, SImode, addr,
>>>>dstoffset + j * UNITS_PER_WORD);
>>>> - emit_insn (gen_unaligned_storesi (mem, regs[j]));
>&g
s if you
can check it in with the test case above marked up as appropriate.
commit 77191f4224c8729d014a9150bd9364f95ff704b0
Author: Kyrylo Tkachov
Date: Fri May 29 10:44:21 2015 +0100
[ARM] arm memcpy of aligned data
diff --git a/gcc/config/arm/arm.c b/gcc/config/arm/arm.c
index 638d659..3
On 29/05/15 10:08, Kyrill Tkachov wrote:
Hi Mike,
On 28/05/15 22:15, Mike Stump wrote:
So, the arm memcpy code of aligned data isn’t as good as it can be.
void *memcpy(void *dest, const void *src, unsigned int n);
void foo(char *dst, int i) {
memcpy (dst, &i, sizeof (i));
}
generates ho
Hi Mike,
On 28/05/15 22:15, Mike Stump wrote:
So, the arm memcpy code of aligned data isn’t as good as it can be.
void *memcpy(void *dest, const void *src, unsigned int n);
void foo(char *dst, int i) {
memcpy (dst, &i, sizeof (i));
}
generates horrible code, but, it we are willing to notic
On 28 May 2015, at 23:15, Mike Stump wrote:
> So, the arm memcpy code of aligned data isn’t as good as it can be.
>
> void *memcpy(void *dest, const void *src, unsigned int n);
>
> void foo(char *dst, int i) {
> memcpy (dst, &i, sizeof (i));
> }
>
> generates horrible code, but, it we are wi
So, the arm memcpy code of aligned data isn’t as good as it can be.
void *memcpy(void *dest, const void *src, unsigned int n);
void foo(char *dst, int i) {
memcpy (dst, &i, sizeof (i));
}
generates horrible code, but, it we are willing to notice the src or the
destination are aligned, we can