On Fri, Sep 25, 2009 at 06:00:32PM +0000, Christian Weisgerber wrote:
> Bernd Walter <ticso(at)cicely.de> wrote:
>
> > Der Grund ist, dass ein struct immer auf ein 4-Byte alignment beginnen
> > soll, damit man immer gleich maskieren kann.
> > Genauso, wie früher alphas konnten frühe ARM keine byte/word Zugriffe
> > machen, aber hatten im Gegensatz zu diesen keine bequemen Maskierbefehle.
>
> ARM hatte schon immer Load/Store-Byte-Befehle, nur 16-Bit-Datentypen
> ("half-words" im ARM-Jargon) wurden nicht direkt unterstützt.
Der Speicherbus hat definitiv in der Ursprungsform nur 32bit gekannt.
Warum sollte man byte-Befehle haben, wenn der Speicherbus das nicht
ausführen kann?
Ich programmiere selbst kleine ARM7 mit wenigen KB Speicher vorwiegend
in C, von daher haben mich in erster Linie auch nur die Auswirkungen
interessiert.
Wie auch immer, irgendwas muss jedenfalls damit gewesen sein, dass man
das 4'er alignment für sinnvoll gehalten hat und OpenVPN nimmt darauf
keine Rücksicht.
-- B.Walter <bernd@bwct.de> http://www.bwct.de Modbus/TCP Ethernet I/O Baugruppen, ARM basierte FreeBSD Rechner uvm. To Unsubscribe: send mail to majordomo(at)de.FreeBSD.org with "unsubscribe de-bsd-questions" in the body of the messageReceived on Sat 26 Sep 2009 - 11:37:10 CEST