<html>
<head>
<style><!--
.hmmessage P
{
margin:0px;
padding:0px
}
body.hmmessage
{
font-size: 10pt;
font-family:Verdana
}
--></style>
</head>
<body class='hmmessage'>
I *speculate*:<BR>
   If the inputs to div or mod are known to have the same sign: don't bother calling the functions.<BR>
      Certainly that is clear for two positive inputs in the old functions.<BR>
   If either input to div is known to be zero, ditto. Presumably not a common case.<BR>
      And *maybe* we want to alter how divide by zero works to reliably trap or not trap.<BR>
 <BR>
  For example, CARDINAL and LONGCARD DIV and MOD need not call the functions ever.<BR>
    (again, caveat, maybe for zero, maybe, not currently, but if we make trapping divide by zero controllable)<BR>
 <BR>
 <BR>
 - Jay<BR><BR>
 <BR>> From: hosking@cs.purdue.edu<BR>> To: hendrik@topoi.pooq.com<BR>> Date: Sun, 17 Jan 2010 15:19:21 -0600<BR>> CC: m3devel@elegosoft.com<BR>> Subject: Re: [M3devel] how division and modulo work in hand.c?<BR>> <BR>> It calls the C routines in hand.c.<BR>> <BR>> Sent from my iPhone<BR>> <BR>> On Jan 17, 2010, at 2:48 PM, hendrik@topoi.pooq.com wrote:<BR>> <BR>> > On Sun, Jan 17, 2010 at 11:39:03AM -0500, Tony Hosking wrote:<BR>> >><BR>> >> This is a quote from the gcc internals manual. I've always wondered<BR>> >> why cm3cg uses the built-in FLOOR_DIV_EXPR/FLOOR_MOD_EXPR only for<BR>> >> known positive operands. What would be wrong about using them also<BR>> >> for negative operands?<BR>> ><BR>> > What does cm3cg use for operands that are not known to be positive?<BR>> ><BR>> > -- hendrik<BR>                                      </body>
</html>