<html>
<head>
<style><!--
.hmmessage P
{
margin:0px;
padding:0px
}
body.hmmessage
{
font-size: 10pt;
font-family:Verdana
}
--></style>
</head>
<body class='hmmessage'>
I believe it is the same thing. As long as you still compute the lower bits correctly.<BR>
There should also be carry in.<BR>
And check if the arithmetic library doesn't already provide this stuff.<BR>
 <BR>
 <BR>
You might also provide a library, where, at least for add/sub, signed and unsigned<BR>
operations are merged but two extra bits are output: "signed overflow" and "unsigned overflow".<BR>
Probably all processors do that in one add/sub instruction that produces at least<BR>
2 status flags.<BR>
"signed overflow" is the "second to last carry bit" as I recall.<BR>
"unsigned overflow" is merely the "last carry bit".<BR>
 <BR>
 <BR>
Another way to look at it is that there is signed overflow if there was<BR>
carry into the sign bit.<BR>
 <BR>
 <BR>
Another implementation choice is what lower bits to return if there is overflow.<BR>
I had a "new idea" that you might as well just always use the direct<BR>
implementation to compute the lower bits. It's a little extra work<BR>
in the highest precision multiplication case but probably ok.<BR>
That is -- look at hand.c, how m3_mult_u64 throws away the<BR>
result of the last m3_add_u64.<BR>
 <BR>
Someone should also write a bunch of code with these things and then<BR>
argue for operator overloading in the language. :)<BR>
 <BR>
 <BR>
 - Jay<BR><BR> <BR>> Date: Wed, 13 Jan 2010 09:25:14 -0500<BR>> From: hendrik@topoi.pooq.com<BR>> To: m3devel@elegosoft.com<BR>> Subject: Re: [M3devel] integer overflow and for loops<BR>> <BR>> On Wed, Jan 13, 2010 at 03:08:47AM +0000, Jay K wrote:<BR>> > <BR>> > <BR>> > INTERFACE IntegerOverflowOut;<BR>> <BR>> While we're at it, should there be a carry out as well?<BR>> <BR>> -- hendrik<BR>> <BR>                                       </body>
</html>