Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(54)

Issue 556019: Refactoring and small optimization of the smi code for binary op stubs... (Closed)

Created:
10 years, 11 months ago by Kevin Millikin (Chromium)
Modified:
9 years, 7 months ago
CC:
v8-dev
Visibility:
Public.

Description

Refactoring and small optimization of the smi code for binary op stubs on ia32. 1. Operate on the values in edx,eax when possible (all operations except DIV and MOD). This saves moving them on entry and when falling out to the non-smi code. 2. Do not perform ADD and SUB before the smi check of their inputs. This saves undoing the operation in the case that we fall through to the non-smi case due to non-smi inputs (probably common?), and we can avoid emitting the smi check code twice (code size reduction). 3. Don't perform OR twice (once to smi check the inputs and once to smi check the result). Committed: http://code.google.com/p/v8/source/detail?r=3712

Patch Set 1 #

Patch Set 2 : '' #

Patch Set 3 : '' #

Patch Set 4 : '' #

Unified diffs Side-by-side diffs Delta from patch set Stats (+254 lines, -191 lines) Patch
M src/ia32/codegen-ia32.cc View 1 2 3 11 chunks +254 lines, -191 lines 0 comments Download

Messages

Total messages: 2 (0 generated)
Kevin Millikin (Chromium)
Hi Vlad. It's good you're starting to look at this code. I started to change ...
10 years, 11 months ago (2010-01-26 13:36:12 UTC) #1
Vladislav Kaznacheev
10 years, 11 months ago (2010-01-26 14:37:29 UTC) #2
Wow, that's great! I must admit I was thinking about something like this but was
too afraid to break something:)

LGTM

On 2010/01/26 13:36:12, Kevin Millikin wrote:
> Hi Vlad.  It's good you're starting to look at this code.
> 
> I started to change the smi code for binary op stubs to work with values in
> edx,eax when possible (e.g., anything other than DIV or MOD).  The control
flow
> was so complicated that I ended up refactoring most of it.

Powered by Google App Engine
This is Rietveld 408576698