Re: Misaligned accesses with MS ARM compiler
From: Paul G. Tobey [eMVP] (ptobey_no_spam_at_instrument_no_spam.com)
Date: 04/28/04
- Next message: Dean Ramsier: "Re: Question about IMGNODEBUGGER"
- Previous message: Alan Gillespie: "Re: Misaligned accesses with MS ARM compiler"
- In reply to: Alan Gillespie: "Re: Misaligned accesses with MS ARM compiler"
- Next in thread: Alan Gillespie: "Re: Misaligned accesses with MS ARM compiler"
- Reply: Alan Gillespie: "Re: Misaligned accesses with MS ARM compiler"
- Messages sorted by: [ date ] [ thread ]
Date: Wed, 28 Apr 2004 09:45:51 -0700
It works, though. It's defined in winnt.h.
It will change the code generated for the item so that it is accessed as an
array of two or four bytes, which will then be reassembled in a register and
used as a WORD or DWORD.
Paul T.
"Alan Gillespie" <agillesp@qualcomm.com> wrote in message
news:%23Us3D8TLEHA.4080@TK2MSFTNGP12.phx.gbl...
> At the risk of appearing ignorant - you are talking about the MS ARM
compiler as included with eVC4, aren't you? As in
> clarm.exe (I have version 12.20.9615)?
>
> I just looked at the compiler documentation and couldn't find any mention
of UNALIGNED of __unaligned anywhere.
>
> --Alan Gillespie.
>
>
> "Michael J. Salamone [eMVP]" <mikesa#at#entrek#dot#com> wrote in message
news:ug8WSkTLEHA.1264@TK2MSFTNGP12.phx.gbl...
> > Use UNALIGNED in your declararation - which resolves to __unaligned
keyword.
> >
> > --
> >
> > Michael Salamone [eMVP]
> > Entrek Software, Inc.
> > www.entrek.com
> >
> >
> >
> > "Alan Gillespie" <agillesp@qualcomm.com> wrote in message
> > news:e1TOPcTLEHA.1272@tk2msftngp13.phx.gbl...
> > >
> > > Does anyone know of a way to tell the ARM compiler that a WORD or
DWORD
> > pointer addresses an object that is not (or
> > > might not be) aligned on a 16 or 32 bit boundary?
> > >
> > > Effectively what I want to do is this:
> > >
> > > BYTE *pBuffer = malloc(something);
> > > WORD *pWord = (WORD *) &pBuffer[arbitrary_offset];
> > > DWORD *pDWord = (DWORD *) &pBuffer[another_arbitrary_offset];
> > >
> > > *pWord = word_value; /* May be misaligned */
> > > *pDWord = dword_value; /* May be misaligned */
> > >
> > > I have tried various versions of #pragma pack() without success. I
could,
> > of course, use WORD and DWORD temporaries and
> > > memcpy() into the array but that is messy. There are other, equally
messy,
> > workarounds involving byte manipulation.
> > >
> > > The problem arises because I am porting a large amount of code that
was
> > written for the ARM ADS compiler, which has such
> > > a facility.
> > >
> > > Thanks,
> > > --Alan Gillespie.
> > >
> > >
> >
> >
>
>
- Next message: Dean Ramsier: "Re: Question about IMGNODEBUGGER"
- Previous message: Alan Gillespie: "Re: Misaligned accesses with MS ARM compiler"
- In reply to: Alan Gillespie: "Re: Misaligned accesses with MS ARM compiler"
- Next in thread: Alan Gillespie: "Re: Misaligned accesses with MS ARM compiler"
- Reply: Alan Gillespie: "Re: Misaligned accesses with MS ARM compiler"
- Messages sorted by: [ date ] [ thread ]
Relevant Pages
|
|