From mboxrd@z Thu Jan 1 00:00:00 1970 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on polar.synack.me X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=unavailable autolearn_force=no version=3.4.4 Path: eternal-september.org!reader01.eternal-september.org!reader02.eternal-september.org!feeder.eternal-september.org!gandalf.srv.welterde.de!news.jacob-sparre.dk!franka.jacob-sparre.dk!pnx.dk!.POSTED.rrsoftware.com!not-for-mail From: "Randy Brukardt" Newsgroups: comp.lang.ada Subject: Re: AI12-0218: What is the portable representation clause for processing IETF packets on little-endian machines? Date: Mon, 14 May 2018 17:54:52 -0500 Organization: JSA Research & Innovation Message-ID: References: <87lgcphdxq.fsf@nightsong.com> Injection-Date: Mon, 14 May 2018 22:54:53 -0000 (UTC) Injection-Info: franka.jacob-sparre.dk; posting-host="rrsoftware.com:24.196.82.226"; logging-data="31279"; mail-complaints-to="news@jacob-sparre.dk" X-Priority: 3 X-MSMail-Priority: Normal X-Newsreader: Microsoft Outlook Express 6.00.2900.5931 X-RFC2646: Format=Flowed; Original X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2900.7246 Xref: reader02.eternal-september.org comp.lang.ada:52348 Date: 2018-05-14T17:54:52-05:00 List-Id: "Paul Rubin" wrote in message news:87lgcphdxq.fsf@nightsong.com... > "Randy Brukardt" writes: >> I don't know of any way on the x86 processor of reading a byte-swapped >> 32-bit integer into a register so it can be used. > > Load it into a register, then BSWAP. This could be made into a compiler > intrinsic if necessary. GCC has __builtin_bswap16, __builtin_bswap32, > and __builtin_bswap64 for this purpose. What's "BSWAP"? It's not an instruction I'm familar with on x86. (Admittedly, I don't usually use newer instructions because of the need to have some sort of alternative to run on older processors.) In any case, one has to build such support into the back-end. (Compiler front-ends are almost always target-independent.) "intrinsics" are just a fancy way of identifying things that are directly supported in the back-end. Randy.