• mru's avatar
    ARM asm for AV_RN*() · b2ff3961
    mru authored
    ARMv6 and later support unaligned loads and stores for single
    word/halfword but not double/multiple.  GCC is ignorant of this and
    will always use bytewise accesses for unaligned data.  Casting to an
    int32_t pointer is dangerous since a load/store double or multiple
    instruction might be used (this happens with some code in FFmpeg).
    Implementing the AV_[RW]* macros with inline asm using only supported
    instructions gives fast and safe unaligned accesses.  ARM RVCT does
    the right thing with generic code.
    
    This gives an overall speedup of up to 10%.
    
    git-svn-id: file:///var/local/repositories/ffmpeg/trunk@18601 9553f0bf-9b14-0410-a0b8-cfaf0461ba5b
    b2ff3961
intreadwrite.h 8.02 KB