Roberto Raggi [Sun, 3 Jun 2012 15:11:04 +0000 (17:11 +0200)]
Inline comparisons
Roberto Raggi [Fri, 1 Jun 2012 12:18:24 +0000 (14:18 +0200)]
Fix the pro file
Roberto Raggi [Thu, 31 May 2012 17:02:05 +0000 (19:02 +0200)]
Initial work on the LLVM-based AOT compiler.
Roberto Raggi [Thu, 31 May 2012 15:32:49 +0000 (17:32 +0200)]
Generalized instruction selection.
This will simplify the instruction selection pass for
different architectures.
Roberto Raggi [Wed, 30 May 2012 10:52:58 +0000 (12:52 +0200)]
Use `assert' instead of Q_ASSERT.
Roberto Raggi [Wed, 30 May 2012 10:42:27 +0000 (12:42 +0200)]
Generate cx-instructions for releational expressionsa.
Roberto Raggi [Tue, 29 May 2012 08:20:28 +0000 (10:20 +0200)]
Tests
Roberto Raggi [Mon, 28 May 2012 20:37:29 +0000 (22:37 +0200)]
Fix Array.prototype.concat
Roberto Raggi [Mon, 28 May 2012 19:49:20 +0000 (21:49 +0200)]
Fix [[construct] and Object.prototype.toString
Roberto Raggi [Mon, 28 May 2012 18:17:13 +0000 (20:17 +0200)]
Implement instanceof
Roberto Raggi [Mon, 28 May 2012 15:04:16 +0000 (17:04 +0200)]
Naive support for switch statements
Roberto Raggi [Fri, 25 May 2012 15:46:29 +0000 (17:46 +0200)]
Oops
Roberto Raggi [Fri, 25 May 2012 15:45:15 +0000 (17:45 +0200)]
Fix the initialization of the ECMA library.
Roberto Raggi [Fri, 25 May 2012 10:54:36 +0000 (12:54 +0200)]
Refactored Object
Roberto Raggi [Fri, 25 May 2012 09:55:50 +0000 (11:55 +0200)]
Propagate exceptions
Roberto Raggi [Thu, 24 May 2012 08:01:17 +0000 (10:01 +0200)]
Throw exceptions in the ecma library
Roberto Raggi [Wed, 23 May 2012 16:48:48 +0000 (18:48 +0200)]
Throw exceptions
Roberto Raggi [Mon, 21 May 2012 16:44:36 +0000 (18:44 +0200)]
Initialize functionPrototype.
Roberto Raggi [Mon, 21 May 2012 16:34:26 +0000 (18:34 +0200)]
Implemented Array.prototype.reduceRight
Roberto Raggi [Mon, 21 May 2012 16:19:51 +0000 (18:19 +0200)]
Implemented Array.prototype.reduce
Roberto Raggi [Mon, 21 May 2012 16:08:51 +0000 (18:08 +0200)]
Implemented Array.prototype.filter
Roberto Raggi [Mon, 21 May 2012 15:59:54 +0000 (17:59 +0200)]
Implement Array.prototype.map
Roberto Raggi [Mon, 21 May 2012 15:51:12 +0000 (17:51 +0200)]
Add non generatic implementation of Array.prototype.some
Roberto Raggi [Mon, 21 May 2012 15:48:39 +0000 (17:48 +0200)]
Add non generic version of Array.prototype.every
Roberto Raggi [Mon, 21 May 2012 13:40:08 +0000 (15:40 +0200)]
Initial work on Array.prototype.forEach.
Roberto Raggi [Mon, 21 May 2012 13:22:22 +0000 (15:22 +0200)]
More work on the Array prototype.
Roberto Raggi [Mon, 21 May 2012 13:16:19 +0000 (15:16 +0200)]
Set the prototype of script and native functions.
Roberto Raggi [Mon, 21 May 2012 13:08:35 +0000 (15:08 +0200)]
Test the Function.prototype.call
Roberto Raggi [Mon, 21 May 2012 12:57:02 +0000 (14:57 +0200)]
Initial work on the Function prototype.
Roberto Raggi [Mon, 21 May 2012 12:27:13 +0000 (14:27 +0200)]
Implement Array.prototype.slice
Roberto Raggi [Mon, 21 May 2012 12:21:57 +0000 (14:21 +0200)]
Implement Array.prototype.splice
Roberto Raggi [Mon, 21 May 2012 12:11:12 +0000 (14:11 +0200)]
Implement Array.prototype.sort
Roberto Raggi [Mon, 21 May 2012 11:24:03 +0000 (13:24 +0200)]
Made the ArrayPrototype an ArrayObject.
Roberto Raggi [Mon, 21 May 2012 11:22:52 +0000 (13:22 +0200)]
Remove debug
Roberto Raggi [Mon, 21 May 2012 11:21:35 +0000 (13:21 +0200)]
Improve the Array prototype
Roberto Raggi [Mon, 21 May 2012 08:26:13 +0000 (10:26 +0200)]
Fix constructor calls
Roberto Raggi [Mon, 21 May 2012 08:10:37 +0000 (10:10 +0200)]
Simple test app for the Array object.
Roberto Raggi [Mon, 21 May 2012 08:09:41 +0000 (10:09 +0200)]
Fix prototypes and implemented isel for constructValue.
Roberto Raggi [Sun, 20 May 2012 17:59:47 +0000 (19:59 +0200)]
Initial support for Array objects.
Roberto Raggi [Fri, 18 May 2012 20:04:26 +0000 (22:04 +0200)]
Initial support for inplace assignments.
Roberto Raggi [Fri, 18 May 2012 15:37:23 +0000 (17:37 +0200)]
Import Array from QtScript classic.
Roberto Raggi [Fri, 18 May 2012 14:31:57 +0000 (16:31 +0200)]
Inline common cases.
Roberto Raggi [Fri, 18 May 2012 13:28:59 +0000 (15:28 +0200)]
Improve [[DefaultValue]]
Roberto Raggi [Fri, 18 May 2012 12:32:11 +0000 (14:32 +0200)]
Improve the Number prototype.
Roberto Raggi [Fri, 18 May 2012 12:27:55 +0000 (14:27 +0200)]
Improve the Boolean prototype.
Roberto Raggi [Fri, 18 May 2012 12:22:37 +0000 (14:22 +0200)]
Improve the Number prototype.
Roberto Raggi [Fri, 18 May 2012 12:10:02 +0000 (14:10 +0200)]
Implemented the ecma Date object.
Roberto Raggi [Fri, 18 May 2012 08:10:36 +0000 (10:10 +0200)]
Some refactoring and some initial work on the Date object.
Roberto Raggi [Wed, 16 May 2012 17:00:31 +0000 (19:00 +0200)]
Simplified the compiler.
Roberto Raggi [Wed, 16 May 2012 14:31:59 +0000 (16:31 +0200)]
Store the locals in %r15.
Roberto Raggi [Wed, 16 May 2012 14:19:55 +0000 (16:19 +0200)]
Refactored the stack frames.
The new layout should simplify the use of static context
environments while compiling the code.
Roberto Raggi [Wed, 16 May 2012 09:58:07 +0000 (11:58 +0200)]
checkpoint
Roberto Raggi [Tue, 15 May 2012 09:19:10 +0000 (11:19 +0200)]
Add the Boolean Object.
Roberto Raggi [Tue, 15 May 2012 08:58:22 +0000 (10:58 +0200)]
Remove String::get()
Roberto Raggi [Tue, 15 May 2012 08:53:20 +0000 (10:53 +0200)]
Cleanup function prototypes.
Roberto Raggi [Tue, 15 May 2012 08:35:19 +0000 (10:35 +0200)]
Add methods to allocate JS entities.
Roberto Raggi [Tue, 15 May 2012 08:02:21 +0000 (10:02 +0200)]
Create the activation only when needed.
Roberto Raggi [Tue, 15 May 2012 07:05:03 +0000 (09:05 +0200)]
Use %rbp to index the local variables.
Roberto Raggi [Mon, 14 May 2012 15:58:33 +0000 (17:58 +0200)]
Skip TEMPs with negative index.
That is, TEMP nodes with negative index are a bit special, we
use them to optimize the argument passing.
Roberto Raggi [Mon, 14 May 2012 15:42:47 +0000 (17:42 +0200)]
Fix the activation.
Roberto Raggi [Mon, 14 May 2012 15:38:53 +0000 (17:38 +0200)]
Initial implementation of the Math Object.
Roberto Raggi [Mon, 14 May 2012 15:12:25 +0000 (17:12 +0200)]
Introduce the ExecutionEngine.
Roberto Raggi [Mon, 14 May 2012 14:37:28 +0000 (16:37 +0200)]
Fix typo
Roberto Raggi [Mon, 14 May 2012 14:35:04 +0000 (16:35 +0200)]
Initial work on the Number object.
Roberto Raggi [Mon, 14 May 2012 14:03:10 +0000 (16:03 +0200)]
Initial work on the String object.
Roberto Raggi [Mon, 14 May 2012 12:34:36 +0000 (14:34 +0200)]
Store the actual arguments in TEMPs with negative indices.
This should make it possible to optimize function calls.
Roberto Raggi [Mon, 14 May 2012 08:50:13 +0000 (10:50 +0200)]
Do a quick scan of the global code.
Roberto Raggi [Sun, 13 May 2012 11:50:55 +0000 (13:50 +0200)]
Fix nested functions
Roberto Raggi [Thu, 10 May 2012 10:14:20 +0000 (12:14 +0200)]
Fix constructors and some work on the String prototype.
Roberto Raggi [Thu, 10 May 2012 08:56:02 +0000 (10:56 +0200)]
Add the String object constructor.
Roberto Raggi [Wed, 9 May 2012 15:28:55 +0000 (17:28 +0200)]
Initialize baseObject.
Roberto Raggi [Wed, 9 May 2012 15:04:25 +0000 (17:04 +0200)]
Fix function calls
Roberto Raggi [Wed, 9 May 2012 13:47:55 +0000 (15:47 +0200)]
Add callValue.
Roberto Raggi [Wed, 9 May 2012 13:06:30 +0000 (15:06 +0200)]
Set the prototype delegator.
Roberto Raggi [Wed, 9 May 2012 12:34:36 +0000 (14:34 +0200)]
Rename simple2.js
Roberto Raggi [Wed, 9 May 2012 12:30:59 +0000 (14:30 +0200)]
Inline __qmljs_copy.
Roberto Raggi [Wed, 9 May 2012 11:51:44 +0000 (13:51 +0200)]
Fix instruction selections for closures.
Roberto Raggi [Wed, 9 May 2012 11:30:22 +0000 (13:30 +0200)]
Some more progress on function calls
Roberto Raggi [Wed, 9 May 2012 10:00:30 +0000 (12:00 +0200)]
Bind the `this' object.
Roberto Raggi [Wed, 9 May 2012 09:28:57 +0000 (11:28 +0200)]
Some progress on closures.
Roberto Raggi [Wed, 9 May 2012 09:04:57 +0000 (11:04 +0200)]
Initial support for object literals
Roberto Raggi [Tue, 8 May 2012 16:43:02 +0000 (18:43 +0200)]
Generate inline code instead of calls to __qmljs_to_boolean.
Roberto Raggi [Tue, 8 May 2012 15:31:16 +0000 (17:31 +0200)]
Fix typo
Roberto Raggi [Tue, 8 May 2012 14:49:16 +0000 (16:49 +0200)]
Inline a code for add,sub,mul and div.
Roberto Raggi [Tue, 8 May 2012 12:54:05 +0000 (14:54 +0200)]
Fix nx representation of call expressions.
Roberto Raggi [Tue, 8 May 2012 12:29:01 +0000 (14:29 +0200)]
Optimized version of simple.js
Roberto Raggi [Tue, 8 May 2012 12:28:32 +0000 (14:28 +0200)]
Optimize local arguments
Roberto Raggi [Tue, 8 May 2012 11:21:52 +0000 (13:21 +0200)]
Added a simple syntax checker.
Roberto Raggi [Tue, 8 May 2012 09:13:02 +0000 (11:13 +0200)]
Improve frame instantiations.
Roberto Raggi [Tue, 8 May 2012 08:34:57 +0000 (10:34 +0200)]
Make Context a POD value.
Roberto Raggi [Tue, 8 May 2012 08:32:33 +0000 (10:32 +0200)]
Initialize the return address
Roberto Raggi [Tue, 8 May 2012 06:58:17 +0000 (08:58 +0200)]
Remove the register allocator.
It needs to be done in a different way
Roberto Raggi [Mon, 7 May 2012 15:50:19 +0000 (17:50 +0200)]
Test function calls
Roberto Raggi [Mon, 7 May 2012 14:05:05 +0000 (16:05 +0200)]
Add naive support for function calls.
Roberto Raggi [Mon, 7 May 2012 12:49:27 +0000 (14:49 +0200)]
Fix the examples
Roberto Raggi [Mon, 7 May 2012 12:46:37 +0000 (14:46 +0200)]
Move the instruction selection pass.
Roberto Raggi [Mon, 7 May 2012 12:14:43 +0000 (14:14 +0200)]
Generate code for print calls.
Roberto Raggi [Mon, 7 May 2012 08:45:58 +0000 (10:45 +0200)]
Simplify liveness.
Roberto Raggi [Fri, 4 May 2012 18:22:04 +0000 (20:22 +0200)]
Compile
Roberto Raggi [Fri, 4 May 2012 13:28:04 +0000 (15:28 +0200)]
Put the code in namespaces.