avr-gcc-list
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [avr-gcc-list] Re: AVR byte swap optimization


From: Shaun Jackman
Subject: Re: [avr-gcc-list] Re: AVR byte swap optimization
Date: Mon, 18 Dec 2006 14:57:07 -0700

On 12/18/06, Anton Erasmus <address@hidden> wrote:
Hi,

Not a macro, but the following seems to generate reasonable code.
...

Thanks Anton,

I came to the same conclusion.

Cheers,
Shaun

static inline uint16_t bswap_16_inline(uint16_t x)
{
        union {
                uint16_t x;
                struct {
                        uint8_t a;
                        uint8_t b;
                } s;
        } in, out;
        in.x = x;
        out.s.a = in.s.b;
        out.s.b = in.s.a;
        return out.x;
}

static inline uint32_t bswap_32_inline(uint32_t x)
{
        union {
                uint32_t x;
                struct {
                        uint8_t a;
                        uint8_t b;
                        uint8_t c;
                        uint8_t d;
                } s;
        } in, out;
        in.x = x;
        out.s.a = in.s.d;
        out.s.b = in.s.c;
        out.s.c = in.s.b;
        out.s.d = in.s.a;
        return out.x;
}




reply via email to

[Prev in Thread] Current Thread [Next in Thread]