gnash-commit
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Gnash-commit] [SCM] Gnash branch, master, updated. release_0_8_9_fi


From: Bastiaan Jacques
Subject: Re: [Gnash-commit] [SCM] Gnash branch, master, updated. release_0_8_9_final-1673-g75671d1
Date: Tue, 23 Jul 2013 20:24:29 +0200 (CEST)
User-agent: Alpine 2.00 (DEB 1167 2008-08-23)

GCC produces identical code for either version, at least on my system.

Bastiaan

On Tue, 23 Jul 2013, Richard Wilbur wrote:

On Wed, Jul 17, 2013 at 4:24 PM, Bastiaan Jacques <address@hidden> wrote:
diff --git a/libcore/vm/ASHandlers.cpp b/libcore/vm/ASHandlers.cpp
+inline boost::uint32_t
+saneShiftParam(boost::int32_t value)
+{
+    // NOTE: ISO-IEC 14882:2003 5.8.1: "The behavior is undefined if the right
+    // operand is negative, or greater than or equal to the length in bits of
+    // the promoted left operand."
+    boost::uint32_t rv = value;
+    return rv % 32;
+}

Regarding efficiency, I would recommend in this case considering the
alternative (with identical results):
return rv & (32 - 1);
which can be rephrased
return rv & 31;
or, if you prefer hexadecimal
return rv & 0x1f;




reply via email to

[Prev in Thread] Current Thread [Next in Thread]