Lars Knoll
d7416a80fa
Rename Context to ExecutionContext
...
This is so it'll map to the name used in the
ECMAScript spec once the other refactorings
are in.
Change-Id: I8dcc7ad43b457ce50e7123c57bc4c770bcda8d11
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
2012-11-19 10:28:56 +01:00
Lars Knoll
1cbec5b889
Remove unused variable and method
...
Change-Id: I357f3062f58e76c1749c9818426be5c0eedf3327
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
2012-11-15 13:39:16 +01:00
Erik Verbruggen
a09d75dd1f
Added more built-ins to the llvm backend and runtime.
...
Change-Id: I7c63395bc80ce8d37d04f1102b02220a54050d06
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
2012-11-14 12:01:52 +01:00
Lars Knoll
5f06c71bc1
Proper exception handling
...
Implement exceptions using setjmp/longjmp. The
advantage is that this removes all exception
handling overhead from regular code, the only
code that still has a (very small) overhead
is the try{} catch() {} statement.
Change-Id: I43d6a60dfc9dfd4b7a20d2e99ab0a9315b4d8a2f
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
2012-10-24 08:46:49 +02:00
Erik Verbruggen
af06d1a1a5
More LLVM code generation. This should complete the expressions.
...
Change-Id: Ic920ceb85cab38093b565acd1c14aeddf20d0bb3
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
2012-10-22 11:07:27 +02:00
Erik Verbruggen
acfb62cc2e
Added LLVM code generation for in-place operators.
...
E.g. +=, <<=, etc.
Change-Id: Iffd5eac413e3c3714fedbab58415d9dc4ba42fa6
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
2012-10-19 15:12:11 +02:00
Lars Knoll
617240f92a
More changes to the new calling convention
...
Change-Id: Icc22f2ed342ced9eac0d62307151acca8031d2c2
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
2012-10-17 14:40:40 +02:00
Lars Knoll
f5b98f6386
Generate correct code when calling values
...
__qmljs_call_value was still using a pointer to a Value.
In addition, qcv4isel_masm.cpp was using a wrong order
of the arguments.
Change-Id: I0414aa732ae8074420e4f11525f5b04712cc1bab
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
2012-10-17 09:35:39 +02:00
Lars Knoll
bd0e6209dd
Convert most operations to the new calling convention
...
Change-Id: I2dbf61b215a03a3c44c9c6bc431859bb9d067625
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
2012-10-17 09:32:13 +02:00
Lars Knoll
69e7dfe5f4
Convert some more methods to the new calling convention
...
Change-Id: Ieeeb86d94d1094213430a1b4afa0d3a91785ac45
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
2012-10-17 09:11:03 +02:00
Lars Knoll
bb09c83bcf
Converting more runtime methods to the new calling convention
...
Change-Id: I331e7ebe6479bc5b6bac9cf4e3e6506a1cae1053
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
2012-10-16 17:26:25 +02:00
Lars Knoll
537c5fa10d
Move conversions to new calling convention
...
Change-Id: Iec01835b4fd27d8b71b7e709b05bcc757d09e417
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
2012-10-16 16:57:24 +02:00
Lars Knoll
f730f7526b
More conversions to new calling convention
...
Change-Id: Iac67c9923bc3d7af76bb490cc8ca7cd3e922e192
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
2012-10-16 16:57:18 +02:00
Lars Knoll
644804d6b8
More conversions to new calling convention
...
Change-Id: I6002715cc3f5c22d90a9ade6ae2152c2c3c8ebb2
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
2012-10-16 16:57:13 +02:00
Lars Knoll
3cdb661ee0
Converting more methods to the new calling convention
...
Change-Id: I5199a9e5439644cc259f131c8b0ba6a941989615
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
2012-10-16 16:57:09 +02:00
Lars Knoll
a1475002d6
Converting more runtime methods.
...
Change-Id: I9e5d73004e377cff2819cb82240d50e73c8bda94
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
2012-10-16 16:57:05 +02:00
Lars Knoll
c63e799fc2
Convert Value constructors to new calling convention
...
Change-Id: I433f72666499e660618b061cfcf3407f5f9bb166
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
2012-10-16 16:57:01 +02:00
Lars Knoll
013098cae8
Further convert runtime methods to the new calling convention
...
Value bassed argument passing.
Change-Id: I95e49ae301221e36946c2ce4f25081461513a6bb
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
2012-10-16 16:56:52 +02:00
Lars Knoll
d4e6330737
Start changing signatures of the runtime to being value based.
...
Value's should be passed by value and returned by value between JIT
and the JS runtime. This should give us better performance on
x86_64 and ARM.
Change-Id: I4fa286c6164f0143adb72d07c737fa273c8a5eb6
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
2012-10-16 16:56:47 +02:00
Simon Hausmann
c13a95361a
Add missing license headers
...
Change-Id: I59d602a0f2c1fefb03994ed32a3d697b176791ff
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
2012-10-12 10:51:06 +02:00
Lars Knoll
bd0ff1b50d
Remove almost all uses of __qmljs_init_string
...
Change-Id: I88130ec39958c75b70d898a352423908ac2ef1d4
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
2012-10-12 09:17:40 +02:00
Lars Knoll
6961f98a85
Remove __qmljs_init_(number|boolean)
...
Change-Id: Iae59dfea39e44931bb2f7a6436bd2f1491bbf843
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
2012-10-12 09:16:21 +02:00
Lars Knoll
e28e4e1ac6
Introduce an integer type for Value
...
The type is not being used yet, but all runtime
methods should be updated and able to deal with
integer Values correctly.
In addition started to clean up the use of some of
__qmljs_* Value constructors.
Change-Id: I1cb2169a5731f6adcc990dcbc92bc96aa008079f
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
2012-10-12 09:15:16 +02:00
Roberto Raggi
56de925f00
Generate LLVM code for constructor calls
2012-06-07 15:28:45 +02:00
Roberto Raggi
5c869a3c81
Delete properties
2012-06-07 14:28:42 +02:00
Roberto Raggi
80188db9d8
Generate LLVM code for the `this-expression'.
2012-06-06 15:58:21 +02:00
Roberto Raggi
55287cde51
Initial work on exceptions for the AOT compiler.
2012-06-06 15:30:50 +02:00
Roberto Raggi
9366999ac2
Generate code for closures.
2012-06-06 14:59:42 +02:00
Roberto Raggi
648f1462ab
Lower IR::Name nodes.
2012-06-06 14:11:28 +02:00
Roberto Raggi
c3f50fdb95
Generate LLVM code for MoveMember
2012-06-06 13:43:50 +02:00
Roberto Raggi
f0ee49c6a4
Lower subscripts
2012-06-06 13:30:03 +02:00
Roberto Raggi
b3fbdb62f7
Lower IR::Call and IR::New
2012-06-06 11:50:13 +02:00
Roberto Raggi
b1e62cc607
Generate LLVM code for member expressions
2012-06-06 11:30:56 +02:00
Roberto Raggi
ad9816514f
Compile simple IR::New nodes
2012-06-06 10:08:51 +02:00
Roberto Raggi
b353942bfa
More work on the AOT.
2012-06-05 18:32:52 +02:00
Roberto Raggi
89bb85c9c4
Start generating LLVM code for IR::Call nodes.
2012-06-05 15:26:21 +02:00
Roberto Raggi
7f3a694adc
LLVM code for unary expressions
2012-06-05 15:03:49 +02:00
Roberto Raggi
a48ece9a5c
Generate LLVM code for the binary expressions
2012-06-05 14:30:04 +02:00
Roberto Raggi
437c25fe33
Generate LLVM code for the conditional jumps.
2012-06-05 13:15:03 +02:00
Roberto Raggi
9551c6527a
Some more work on the LLVM-based AOT compiler.
2012-06-05 12:28:58 +02:00