Граф коммитов

736 Коммитов

Автор SHA1 Сообщение Дата
Alon Zakai af14b70855 assert on global var loads being ints in the python driver 2014-09-26 13:48:03 -07:00
Alon Zakai 8aa101d8ee do not convert dynCall stubs 2014-09-26 13:32:12 -07:00
Alon Zakai 9211dd506c labeled switches 2014-09-26 12:51:45 -07:00
Alon Zakai da11ec0641 LOADU8,16 2014-09-26 12:45:16 -07:00
Alon Zakai 68fd338f15 do not emit a branch at the end of a case statement, if there isn't a break then we should fall through 2014-09-26 11:40:00 -07:00
Alon Zakai da2f582f7b SETGLBI 2014-09-26 11:22:42 -07:00
Alon Zakai 89fc3f430e notice type hint in calls, even if told to drop the output 2014-09-25 21:54:44 -07:00
Alon Zakai 06059af5f6 add nan 2014-09-25 21:16:41 -07:00
Alon Zakai fddbdf93d8 do not emit 32-bit unsigned values using SETVD; for doubles, we only handle signed there 2014-09-25 21:08:42 -07:00
Alon Zakai 1fafb0037a save a copy of the pre-emterpreter code if in debug mode 2014-09-25 20:33:04 -07:00
Alon Zakai 14517287aa handle boolean not in detectSign, and fix switch on default value 2014-09-25 17:49:16 -07:00
Alon Zakai bbe7506fb9 fix bad call of getReg 2014-09-25 16:06:12 -07:00
Alon Zakai 90257ca793 use proper type of SET in conditional 2014-09-25 16:04:12 -07:00
Alon Zakai e320d63dd8 add generic global access inst 2014-09-25 14:41:05 -07:00
Alon Zakai 23951a3e38 emit negative zeros 2014-09-25 14:15:37 -07:00
Alon Zakai ba71f1fd78 int/double fixes 2014-09-25 13:35:42 -07:00
Dan Gohman a0eea413fc Asm.js validation for SIMD 2014-09-25 13:22:46 -07:00
Alon Zakai 2bbfbf24ca mixed signed/unsigned is flexible 2014-09-24 21:55:45 -07:00
Alon Zakai 6555e40b18 SETTR0 2014-09-24 21:54:09 -07:00
Alon Zakai 5e8f1a049d SETVDD 2014-09-24 21:49:06 -07:00
Alon Zakai b69a91aff8 do not try to find the type of a coerced call, it never needs an extra coercion 2014-09-24 21:40:49 -07:00
Alon Zakai a20d95e832 tolerate flexible signs in comparisons 2014-09-24 21:38:44 -07:00
Alon Zakai 216fbb5e86 GETTR0 2014-09-24 21:34:33 -07:00
Alon Zakai 8aff4b3772 fix register handling bug in store 2014-09-24 18:26:41 -07:00
Alon Zakai 8615b671dd coerce int to float when needed 2014-09-24 17:44:14 -07:00
Alon Zakai deb8644700 add type to heap parsing, and use it to add a coercion on stores when needed 2014-09-24 17:16:36 -07:00
Alon Zakai 750de1fa12 final fixes and hacks to get box2d to compile 2014-09-24 15:16:32 -07:00
Alon Zakai 17187f34b8 name handling improvements 2014-09-24 15:02:32 -07:00
Alon Zakai 45aba1a7d7 note inf as double 2014-09-24 14:00:01 -07:00
Alon Zakai db77ff8139 detect sign of comparisons 2014-09-24 13:51:49 -07:00
Alon Zakai 694f74f465 improve binary type detection on +,- 2014-09-24 13:50:32 -07:00
Alon Zakai 37a60cbb42 detect sub type 2014-09-24 13:46:34 -07:00
Alon Zakai 348820373c detectAsmCoercion => detectType 2014-09-24 13:38:21 -07:00
Alon Zakai 29c43378b2 start to make detectAsmCoercion precise 2014-09-24 13:36:23 -07:00
Alon Zakai b37877484e detect unary - type 2014-09-24 13:24:04 -07:00
Alon Zakai 4db1c5097d detect sign of seq, and assume sign is ok on +(exp) 2014-09-24 13:17:07 -07:00
Alon Zakai 89b24f0b71 enable binary ops in unary + 2014-09-24 13:10:26 -07:00
Alon Zakai 6206512d08 fix GED 2014-09-24 13:08:02 -07:00
Alon Zakai 67c9eeae12 NEGD 2014-09-24 13:06:30 -07:00
Alon Zakai 7357d4e2e5 SETVDF 2014-09-24 13:04:19 -07:00
Alon Zakai fe19da8270 more unary + cases 2014-09-24 12:55:19 -07:00
Alon Zakai d1ad322704 stop passing global funcs unnecessarily into js optimizer 2014-09-24 12:07:19 -07:00
Alon Zakai 40d5699461 SETVDI 2014-09-24 11:49:37 -07:00
Alon Zakai 90338a7dcd do not track eliminatable variables from inside a switch to outside 2014-09-24 11:12:34 -07:00
Alon Zakai a5a2aaf830 fix verifyCode 2014-09-23 20:54:48 -07:00
Alon Zakai 3393da2fab small compiler optimization 2014-09-23 19:21:09 -07:00
Alon Zakai a435b25f17 disable code verification by default 2014-09-23 19:14:11 -07:00
Alon Zakai 28a872b7b3 optimize more arrays 2014-09-23 18:15:34 -07:00
Alon Zakai 70eeb13682 optimize some arrays 2014-09-23 18:02:13 -07:00
Alon Zakai 28f7bcf944 relax switch assert 2014-09-23 17:16:02 -07:00
Alon Zakai 14aa4d9a7b remove heavy assert output 2014-09-23 17:12:11 -07:00
Alon Zakai ae74db5940 disable most debug output 2014-09-23 17:06:38 -07:00
Alon Zakai fe57b74e5e refactor detectSign and add conditional detection 2014-09-23 17:01:32 -07:00
Alon Zakai 18efa9c723 let type detection be driven by ints 2014-09-23 16:59:07 -07:00
Alon Zakai 3ebe79cc0f fix unary + sign detection 2014-09-23 16:56:18 -07:00
Alon Zakai 0990d783a9 detect ~ as signed 2014-09-23 16:55:15 -07:00
Alon Zakai d88eebfbd0 BNOT 2014-09-23 16:53:28 -07:00
Alon Zakai ae30209fcc clean up parseTempHeap usage 2014-09-23 16:39:27 -07:00
Alon Zakai da9be3f501 fix bug with forEach extra params 2014-09-23 16:13:54 -07:00
Alon Zakai 1455957bd4 support for function pointer calls 2014-09-23 16:06:29 -07:00
Alon Zakai 982394591f relax restriction on float load/store size 2014-09-23 14:05:31 -07:00
Alon Zakai 4b67400af6 detect +,- without coercion as double ops 2014-09-23 14:02:40 -07:00
Alon Zakai bb1e867c8f detectSign of uncoerced *,/ as non-signed 2014-09-23 13:58:50 -07:00
Alon Zakai 7275d4737d improve detectAsmCoercion and add *,/ detection 2014-09-23 13:55:29 -07:00
Alon Zakai 4f2880876a load/store of floats 2014-09-23 13:48:44 -07:00
Alon Zakai f0901ad9b4 refactor load and improve store, so both now handle consts 2014-09-23 13:28:52 -07:00
Alon Zakai 2f54c8c699 refactor parseHeap, and start to use in emterpreter sub 2014-09-23 13:05:50 -07:00
Alon Zakai 65d253e69b I2D and I/D fixes 2014-09-23 12:00:17 -07:00
Alon Zakai 14d5cdae3c D2I and SETVD 2014-09-23 11:06:58 -07:00
Alon Zakai 6a44d21ae2 double ops 2014-09-22 21:48:14 -07:00
Alon Zakai c72872399e add unary+ to detectSign 2014-09-22 21:29:41 -07:00
Alon Zakai 4878f915f5 SETD, and fix for assigning to a param 2014-09-22 21:28:02 -07:00
Alon Zakai 2ff7d1702c SETVIB, and make SETVI signed 2014-09-22 21:00:10 -07:00
Alon Zakai 2574cfec6b detectSign improvements 2014-09-22 18:12:35 -07:00
Alon Zakai 3c1e9ac7a9 use hint more strongly in getCombinedSign 2014-09-22 18:11:30 -07:00
Alon Zakai 5038e9c979 LNOT 2014-09-22 18:08:06 -07:00
Alon Zakai 412eaa4337 SMOD, UMOD 2014-09-22 18:02:20 -07:00
Alon Zakai 8b88d1d274 fix jump table emitting 2014-09-22 17:07:28 -07:00
Alon Zakai 50a88cc708 absolute target fixes 2014-09-22 16:55:52 -07:00
Alon Zakai 7840fc3eac fix register leak in makeDo 2014-09-22 16:42:44 -07:00
Alon Zakai 590970664a tolerate flexible signs when possible 2014-09-22 16:28:59 -07:00
Alon Zakai 50c0e6f245 block 2014-09-22 16:25:34 -07:00
Alon Zakai b9d4958222 initial switch support 2014-09-22 16:23:19 -07:00
Alon Zakai 56209dd54e disable assert 2014-09-22 14:19:43 -07:00
Alon Zakai 57d69b14a9 optimize do-while(0) 2014-09-22 13:37:12 -07:00
Alon Zakai 2eec4f918f optimize while(1) 2014-09-22 13:26:59 -07:00
Alon Zakai 74e8dc504f coerce function calls to asm functions even if return value is ignored, enable passing fannkuch test 2014-09-21 21:19:06 -07:00
Alon Zakai 9d9cf5ee3c add missing branch in while 2014-09-21 19:39:51 -07:00
Alon Zakai 8bc2a6b2f3 fix binary bug 2014-09-21 19:09:05 -07:00
Alon Zakai 22f04a5760 blacklist autodebug funcs, and add tempDoublePtr getter 2014-09-21 18:16:13 -07:00
Alon Zakai 8c900f3dce make detectAsmCoercion not see unary - as double 2014-09-21 17:59:12 -07:00
Alon Zakai 27689dd82f number params before vars 2014-09-21 16:30:17 -07:00
Alon Zakai 3575bd9af0 MUL 2014-09-21 16:14:43 -07:00
Alon Zakai e294b9817c asserts and call fixes 2014-09-21 15:06:42 -07:00
Alon Zakai 1d680307b7 seq 2014-09-21 14:48:53 -07:00
Alon Zakai 03d7d242fd break, continue 2014-09-21 11:59:10 -07:00
Alon Zakai 88fa764671 conditional 2014-09-21 11:49:53 -07:00
Alon Zakai 490bc6c5c1 labels 2014-09-21 10:46:44 -07:00
Alon Zakai 8d3a036a9f refactor do, while 2014-09-21 10:44:52 -07:00
Alon Zakai b2aab86a63 todo 2014-09-21 10:37:24 -07:00
Alon Zakai eed085f0d9 unary - sign detection 2014-09-21 10:24:21 -07:00
Alon Zakai d833b65a8e unary - 2014-09-21 10:20:57 -07:00
Alon Zakai fc2303b7ad be more flexible in type detection, using hinting 2014-09-21 10:15:10 -07:00
Alon Zakai b9398a0973 NE 2014-09-21 10:11:20 -07:00
Alon Zakai 591c87a6d2 more sign detection 2014-09-21 10:08:46 -07:00
Alon Zakai ec4d8668d0 fix shifts 2014-09-20 21:54:17 -07:00
Alon Zakai 04d82b8a85 OR, XOR 2014-09-20 21:53:01 -07:00
Alon Zakai 90c6e6c0cc shifts 2014-09-20 21:51:01 -07:00
Alon Zakai 18a8e2356d SLE, ULE 2014-09-20 21:45:19 -07:00
Alon Zakai c5a07ca39f sub 2014-09-20 21:35:50 -07:00
Alon Zakai e4d46803b7 while 2014-09-20 21:33:01 -07:00
Alon Zakai 985fca2ca3 AND 2014-09-20 21:09:07 -07:00
Alon Zakai 547ccce4de EQ 2014-09-20 20:44:23 -07:00
Alon Zakai 0241e20569 fix walkStatements on a singleton 2014-09-20 20:39:38 -07:00
Alon Zakai 02dccd063e add int >= 2014-09-20 20:35:03 -07:00
Alon Zakai 90b56ad7ec BR and BRF 2014-09-20 20:30:08 -07:00
Alon Zakai a386df46f7 fix non-void calls; loop test passes 2014-09-20 18:04:57 -07:00
Alon Zakai 4a789e4104 fix free local releasing bug 2014-09-20 17:57:56 -07:00
Alon Zakai bf8655a199 jump fix 2014-09-20 17:02:44 -07:00
Alon Zakai d8248b9028 call generalizations 2014-09-20 16:51:54 -07:00
Alon Zakai 73e149401c add output to CALL 2014-09-20 16:43:02 -07:00
Alon Zakai d419b23e05 rename SETI 2014-09-20 16:23:37 -07:00
Alon Zakai 5b0f8798a0 sign and type forwarding 2014-09-20 16:05:10 -07:00
Alon Zakai 86788c0f1b do-while fixes 2014-09-20 15:56:14 -07:00
Alon Zakai 7c83f7f538 notice unsigned coercions 2014-09-20 15:48:12 -07:00
Alon Zakai bba2f17c31 refactoring simplification 2014-09-20 15:46:43 -07:00
Alon Zakai 34bbf01b49 improve sign handling 2014-09-20 15:34:23 -07:00
Alon Zakai 637047c158 less than 2014-09-20 15:30:48 -07:00
Alon Zakai ac0c73d9b9 add sign detection 2014-09-20 15:17:57 -07:00
Alon Zakai fa196fbe00 fix load 2014-09-20 13:58:24 -07:00
Alon Zakai 29bed1a37f let python turn strings into opcodes 2014-09-20 13:57:22 -07:00
Alon Zakai 67791d6b1b store8, 16 2014-09-20 13:48:53 -07:00
Alon Zakai 1f41682986 load 2014-09-20 13:47:10 -07:00
Alon Zakai 039b65bfe2 div 2014-09-20 13:32:51 -07:00
Alon Zakai 2549dc5a36 more math 2014-09-20 12:56:53 -07:00
Alon Zakai 588cfebf0d start to handle control flow, and some refactoring 2014-09-20 12:40:07 -07:00
Alon Zakai 4d78a14500 store32 2014-09-19 16:56:33 -07:00
Alon Zakai 04fab79992 code cleanup 2014-09-19 16:32:45 -07:00
Alon Zakai dc7a77ee47 use GETST to get the value of STACKTOP when in a free name 2014-09-19 16:25:40 -07:00
Alon Zakai c88767b33b add opcode, and utilities to reuse free locals efficiently 2014-09-19 16:23:45 -07:00
Alon Zakai 1cdd9b2155 add breaking test 2014-09-19 16:01:48 -07:00
Alon Zakai 719991755e unify getReg and walk 2014-09-19 15:54:07 -07:00
Alon Zakai b5ae09fd87 update heap resizing code to latest proposal 2014-09-19 11:22:04 -07:00
Alon Zakai 32c5743cca implement call; hello world passes 2014-09-18 16:57:31 -07:00
Alon Zakai 06bc0e1dea start to implement emterpreters 2014-09-18 15:43:42 -07:00
Alon Zakai 0c280acdf1 start to process call sigs 2014-09-18 15:02:28 -07:00
Alon Zakai a88f6ca716 move opcodes into python 2014-09-18 14:51:50 -07:00
Alon Zakai f8e4153396 emit target and signature from calls 2014-09-18 14:45:25 -07:00
Alon Zakai b1c1966069 don't emit final unnecessary ret 2014-09-17 21:16:21 -07:00
Alon Zakai a0e048f92f list callable globals 2014-09-17 21:14:02 -07:00