From: Phil Howard <phil-linux-kernel@ipal.org>
To: linux-kernel@vger.kernel.org
Subject: Re: [PATCH] embarassing typo
Date: Tue, 29 Mar 2005 21:34:43 -0600 [thread overview]
Message-ID: <20050330033443.GA2964@vega.ipal.net> (raw)
In-Reply-To: <yw1xu0mtzy1g.fsf@ford.inprovide.com>
On Wed, Mar 30, 2005 at 04:07:39AM +0200, M?ns Rullg?rd wrote:
| Michael Tokarev <mjt@tls.msk.ru> writes:
|
| > M?ns Rullg?rd wrote:
| >> "Ronald S. Bultje" <rbultje@ronald.bitfreak.net> writes:
| >>
| >>>--- linux-2.6.5/drivers/media/video/zr36050.c.old 16 Sep 2004 22:53:27 -0000 1.2
| >>>+++ linux-2.6.5/drivers/media/video/zr36050.c 29 Mar 2005 20:30:23 -0000
| >>>@@ -419,7 +419,7 @@
| >>> dri_data[2] = 0x00;
| >>> dri_data[3] = 0x04;
| >>> dri_data[4] = ptr->dri >> 8;
| >>>- dri_data[5] = ptr->dri * 0xff;
| >>>+ dri_data[5] = ptr->dri & 0xff;
| >> Hey, that's a nice obfuscation of a simple negation.
| >
| > It's not a negation. This statement always assigns zero to
| > dri_data[5] if dri_data is char[].
|
| Sure about that?
|
| __u16 i;
| char c;
| i = 1; c = i * 255; /* c = 255 = -1 */
| i = 2; c = i * 255; /* c = 510 & 0xff = 254 = -2 */
| ...
|
| Looks like negation to me.
Sure it's negation because 255 _is_ 256 - 1. Basic finite math.
( x * 256 ) mod 256 == 0
( ( x * 256 ) - ( x * 1 ) ) mod 256 == - ( x * 1 )
( x * ( 256 - 1 ) ) mod 256 == - ( x * 1 )
( x * 255 ) mod 256 == - ( x * 1 )
( x * 255 ) mod 256 == - x
Now what I am interested in is if gcc optimized it to a faster negation
or subtraction instruction.
--
-----------------------------------------------------------------------------
| Phil Howard KA9WGN | http://linuxhomepage.com/ http://ham.org/ |
| (first name) at ipal.net | http://phil.ipal.org/ http://ka9wgn.ham.org/ |
-----------------------------------------------------------------------------
next prev parent reply other threads:[~2005-03-30 3:34 UTC|newest]
Thread overview: 11+ messages / expand[flat|nested] mbox.gz Atom feed top
2005-03-29 20:36 [PATCH] embarassing typo Ronald S. Bultje
2005-03-29 21:02 ` Måns Rullgård
2005-03-29 21:58 ` Michael Tokarev
2005-03-30 1:40 ` Dmitry Torokhov
2005-03-30 5:53 ` Gene Heskett
2005-03-30 23:38 ` John Pearson
2005-03-31 4:16 ` Gene Heskett
2005-03-30 2:07 ` Måns Rullgård
2005-03-30 3:34 ` Phil Howard [this message]
-- strict thread matches above, loose matches on Subject: below --
2005-03-29 23:31 Vicente Feito
2005-03-30 3:35 ` Måns Rullgård
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20050330033443.GA2964@vega.ipal.net \
--to=phil-linux-kernel@ipal.org \
--cc=linux-kernel@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox