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=ham autolearn_force=no version=3.4.4 X-Google-Language: ENGLISH,ASCII-7-bit Path: g2news2.google.com!news3.google.com!feeder.news-service.com!cyclone01.ams2.highwinds-media.com!news.highwinds-media.com!npeersf02.ams.highwinds-media.com!newsfe28.ams2.POSTED!7564ea0f!not-for-mail From: John McCabe Newsgroups: comp.lang.ada Subject: Re: Ariane 5 Failure from 1996 Message-ID: References: <14e1cf5c-b053-49ec-83c8-d36b9afc49ab@p29g2000yqh.googlegroups.com> <4n1f5510eum9c0b53rb1ui111rmgf23fgd@4ax.com> X-Newsreader: Forte Agent 2.0/32.652 MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit NNTP-Posting-Host: 80.176.146.77 X-Complaints-To: abuse@demon.net X-Trace: newsfe28.ams2 1247251477 80.176.146.77 (Fri, 10 Jul 2009 18:44:37 UTC) NNTP-Posting-Date: Fri, 10 Jul 2009 18:44:37 UTC Date: Fri, 10 Jul 2009 19:44:31 +0100 Xref: g2news2.google.com comp.lang.ada:6955 Date: 2009-07-10T19:44:31+01:00 List-Id: John McCabe wrote: >FWIW though, if, as someone else has said, the SRI for A5 used a >MIL-STD-1750A processor then, as I remember that chip, there is a way >for arithmetic overflow (i.e. x + y = z where x and y are both >positive and z is negative) to cause a machine fault interrupt. I >imagine that this would be disabled in C as it's not a check that >should be made by the language (forgive me if my memory of >MIL-STD-1750A is hazy, I haven't used them since 1997). This is what I was getting at (from MIL-STD-1750A): 5.85 Convert floating point to 16-bit integer. ---------------------------------------- ADDR MODE MNEMONIC FORMAT/OPCODE ---- ---- -------- ------------- 8 4 4 ---------------------- R FIX RA,RB | E8 | RA | RB | ---------------------- DESCRIPTION: The integer portion of the floating point Derived Operand, DO ----------- (i.e., the contents of registers RB and RB+1), is stored into register RA. If the actual value of the DO floating point exponent is greater than 0F (Base 16), then RA remains unchanged and a FIXED POINT OVERFLOW OCCURS. The condition status, CS, is set <<<<<< based on the result in RA. Note: The algorithm truncates toward zero. =============== Fixed point overflow is, I believe, a maskable interrupt.