- 26 Jan, 2011 1 commit
-
-
fschneider@chromium.org authored
This fixes a crash in the code generator. BUG=1074 Review URL: http://codereview.chromium.org/6258020 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6479 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 24 Jan, 2011 2 commits
-
-
fschneider@chromium.org authored
This saves one pointer per LIR instructions. The change relies on the fact that there is a LazyBailout instruction at all the places where we need to register a lazy deoptimization environment. Review URL: http://codereview.chromium.org/6348016 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6441 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
fschneider@chromium.org authored
This is a port of the IA32 version and is needed to allow changing the register allocator interface in a later change. Review URL: http://codereview.chromium.org/6250027 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6436 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 21 Jan, 2011 1 commit
-
-
fschneider@chromium.org authored
Instead require that the number of temps be specified at each declaration. Review URL: http://codereview.chromium.org/6265019 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6425 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 20 Jan, 2011 1 commit
-
-
kmillikin@chromium.org authored
Rename HBranch (the instruction that coerces an arbitrary HValue to control flow) to HTest to free up the term Branch to refer to any control instruction with two successors. Change the virtual FirstSuccessor and SecondSuccessor functions on control instructions to a pair of data members. Review URL: http://codereview.chromium.org/6366002 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6417 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 19 Jan, 2011 1 commit
-
-
vitalyr@chromium.org authored
This patch adds H- and L-variants of StringCharCodeAt and StringLength. StringCharCodeAt is used to inline a constant function call of String.prototype.charCodeAt and to implement the corresponding inline runtime function. It does not yet use the recently introduced extra IC state. (We can specialize on string encoding and avoid deopts because of out of bounds accesses.) StringLength needs more work because the stub version of it also supports strings wrappers and it matters in some cases. (We have to separate the string only case.) Review URL: http://codereview.chromium.org/6243008 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6408 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 18 Jan, 2011 1 commit
-
-
fschneider@chromium.org authored
Record the key as a input operand for keyed call instructions instead of wrongly making it a temp operand. This bug does currently not show up as a problem because the uses are recorded only in the instruction summary. Review URL: http://codereview.chromium.org/6368003 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6365 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 17 Jan, 2011 3 commits
-
-
fschneider@chromium.org authored
The result can be a register, a stack slot or a constant operand. Right now it is only used for enviroment uses. Review URL: http://codereview.chromium.org/6348003 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6349 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
fschneider@chromium.org authored
This change introduces the third template parameters for LIR instructions to specify the number of temp-operands. This is one step towards removing the instruction-summaries. I also added hydrogen-accessors in more places and refactored the LIR-branch instructions to have common super-classes to avoid code duplication. Added MUST_USE_RESULT to the functions that record uses and definitions so that all LOperands are stored in the LIR instructions (and not only in the summaries). Review URL: http://codereview.chromium.org/6237002 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6345 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
antonm@chromium.org authored
Currently only closures which only read from the context are supported. Review URL: http://codereview.chromium.org/5753005 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6340 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 14 Jan, 2011 1 commit
-
-
fschneider@chromium.org authored
This instruction does not produce a result. We don't need a result LOperand for it. Review URL: http://codereview.chromium.org/6306001 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6305 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 13 Jan, 2011 1 commit
-
-
vitalyr@chromium.org authored
This instruction only depends on the prototype and the holder and can completely ignore the receiver and its map. This change also fixes a small bug on arm where a cell was loaded instead of the prototype from new space. Review URL: http://codereview.chromium.org/6094020 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6290 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 12 Jan, 2011 1 commit
-
-
fschneider@chromium.org authored
Review URL: http://codereview.chromium.org/6207007 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6288 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 11 Jan, 2011 8 commits
-
-
whesse@chromium.org authored
Crankshaft: Move LEnvironment and LPointerMap classes to platform-independent lithium.h. Move WriteTranslation method from LEnvironment class to LCodeGen class. Review URL: http://codereview.chromium.org/6142011 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6276 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
fschneider@chromium.org authored
Each LInstruction is now a subclass of LTemplateInstruction<R, I, T> where R is number of outputs, I number of inputs and T number of temps. This change only actually uses the parameter I for input operands. Since the parameter T for temps is 0, it incurs no extra cost. A separate change will introduce using the temps parameter. Review URL: http://codereview.chromium.org/6215002 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6275 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
fschneider@chromium.org authored
Review URL: http://codereview.chromium.org/6217003 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6273 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
ager@chromium.org authored
Review URL: http://codereview.chromium.org/6201004 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6271 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
vitalyr@chromium.org authored
Review URL: http://codereview.chromium.org/6049008 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6269 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
fschneider@chromium.org authored
Review URL: http://codereview.chromium.org/6221003 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6262 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
fschneider@chromium.org authored
Remove unused LOperands from keyed-loads. We do not have multiple representations for load instructions anymore. Correct number of output operands as for a couple of instructions form 1 to 0 because they do not produce a result (e.g. PushArgument) Review URL: http://codereview.chromium.org/6158004 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6258 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
whesse@chromium.org authored
Review URL: http://codereview.chromium.org/6128008 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6257 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 10 Jan, 2011 2 commits
-
-
fschneider@chromium.org authored
This change introduces LTemplateInstruction which is a specialized version of LInstruction and takes one template parameter to indicate whether the instruction produces a result operand. All instruction that do not have a result inherit from LTemplateInstruction<0>. Instructions that have a result operand from LTemplateInstruction<1> All the Define* function only operate on instructions with a result. For this to work I also refactored the places where we do LInstruction* result = new Lxyy into Lxyz* result = new Lxyz Review URL: http://codereview.chromium.org/6219001 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6245 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
whesse@chromium.org authored
Review URL: http://codereview.chromium.org/6132002 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6242 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 07 Jan, 2011 1 commit
-
-
whesse@chromium.org authored
Review URL: http://codereview.chromium.org/6121001 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6221 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 06 Jan, 2011 1 commit
-
-
karlklose@chromium.org authored
BUG= TEST= Review URL: http://codereview.chromium.org/6119001 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6206 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 05 Jan, 2011 2 commits
-
-
whesse@chromium.org authored
Review URL: http://codereview.chromium.org/6015014 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6178 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
sgjesse@chromium.org authored
If the instance of is performed against what is beliwed to be a constant global function inline the instance of check and have the call to the instanceof stub in deferred code. The inlined check will be patched by the instanceof stub when called from deferred code. This is indicated by the lithium instruction LInstanceOfKnownGlobal. To help the patching the delta from the return address to the patch site is placed just below the return address in the edi slot of the pushad/popad ares. This is safe because the edi register (which is pushed last) is a temporary for the lithium instruction. As the instanceof stub can call other JavaScript an additional marking for saving all double registers have been added. Also tweaked the instanceof stub to produce true/false objects instead of 0/1 for the case with deferred code. Review URL: http://codereview.chromium.org/5990005 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6173 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 04 Jan, 2011 1 commit
-
-
fschneider@chromium.org authored
DefineSameAsAny is never used and currently does exactly the same as DefineSameAsFirst. Review URL: http://codereview.chromium.org/6025014 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6163 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 30 Dec, 2010 1 commit
-
-
fschneider@chromium.org authored
1. Separating out the instance-type check from the array-length operation. 2. I also changed the bounds-check on keyed loads to use the length property for JS arrays (like we do for array stores). The new pattern should use less registers and allow more checks to be eliminated. Review URL: http://codereview.chromium.org/5961016 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6125 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 22 Dec, 2010 1 commit
-
-
vitalyr@chromium.org authored
Review URL: http://codereview.chromium.org/6009005 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6112 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 15 Dec, 2010 1 commit
-
-
erik.corry@gmail.com authored
Review URL: http://codereview.chromium.org/5806001 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6027 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 14 Dec, 2010 1 commit
-
-
vitalyr@chromium.org authored
Two old id types are replaced by builtin function ids. We can use these in the code generators to emit custom code for the selected functions. Review URL: http://codereview.chromium.org/5767002 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6013 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 08 Dec, 2010 1 commit
-
-
whesse@chromium.org authored
Review URL: http://codereview.chromium.org/5640004 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5949 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 07 Dec, 2010 4 commits
-
-
vegorov@chromium.org authored
Remove uses of NearestGapPos in splitting helpers. We can split at any position. Review URL: http://codereview.chromium.org/5605004 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5937 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
kasperl@chromium.org authored
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5922 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
kasperl@chromium.org authored
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5921 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
kasperl@chromium.org authored
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5920 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-