Damien George
c60a261ef0
py, vm: Replace save_ip, save_sp with code_state->{ip, sp}.
...
This may seem a bit of a risky change, in that it may introduce crazy
bugs with respect to volatile variables in the VM loop. But, I think it
should be fine: code_state points to some external memory, so the
compiler should always read/write to that memory when accessing the
ip/sp variables (ie not put them in registers).
Anyway, it passes all tests and improves on all efficiency fronts: about
2-4% faster (64-bit unix), 16 bytes less stack space per call (64-bit
unix) and slightly less executable size (unix and stmhal).
The reason it's more efficient is save_ip and save_sp were volatile
variables, so were anyway stored on the stack (in memory, not regs).
Thus converting them to code_state->{ip, sp} doesn't cost an extra
memory dereference (except maybe to get code_state, but that can be put
in a register and then made more efficient for other uses of it).
2014-06-01 12:32:28 +01:00
..
2014-05-06 16:52:35 +00:00
2014-05-10 18:07:08 +01:00
2014-05-07 17:24:22 +01:00
2014-05-07 17:24:22 +01:00
2014-05-07 17:24:22 +01:00
2014-05-03 23:27:38 +01:00
2014-05-31 18:22:01 +03:00
2014-05-03 23:27:38 +01:00
2014-05-03 23:27:38 +01:00
2014-05-25 22:27:57 +01:00
2014-05-24 21:24:37 +03:00
2014-05-03 23:27:38 +01:00
2014-05-25 22:27:57 +01:00
2014-05-24 23:03:12 +01:00
2014-05-03 23:27:38 +01:00
2014-05-31 17:59:11 +01:00
2014-05-12 22:35:37 +01:00
2014-05-30 15:20:41 +01:00
2014-05-30 15:20:41 +01:00
2014-05-03 23:27:38 +01:00
2014-05-10 10:36:38 +01:00
2014-05-12 23:11:14 +01:00
2014-05-12 23:11:14 +01:00
2014-05-10 13:40:46 +01:00
2014-05-30 15:20:41 +01:00
2014-05-07 17:24:22 +01:00
2014-05-03 23:27:38 +01:00
2014-05-03 23:27:38 +01:00
2014-05-10 18:16:21 +01:00
2014-05-03 23:27:38 +01:00
2014-05-03 23:27:38 +01:00
2014-05-21 20:32:59 +01:00
2014-05-03 23:27:38 +01:00
2014-05-03 23:27:38 +01:00
2014-05-21 20:32:59 +01:00
2014-05-03 23:27:38 +01:00
2014-05-03 10:26:31 +02:00
2014-05-03 23:27:38 +01:00
2014-05-03 23:27:38 +01:00
2014-05-31 07:30:57 +01:00
2014-04-16 11:36:44 -07:00
2014-04-17 18:03:27 +01:00
2014-05-03 23:27:38 +01:00
2014-05-24 23:03:12 +01:00
2014-05-24 23:03:12 +01:00
2014-05-24 23:03:12 +01:00
2014-05-24 23:03:12 +01:00
2014-05-24 23:03:12 +01:00
2014-05-03 23:27:38 +01:00
2014-05-24 23:03:12 +01:00
2014-05-24 23:03:12 +01:00
2014-05-25 22:06:06 +01:00
2014-05-29 15:01:49 +01:00
2014-05-03 23:27:38 +01:00
2014-05-03 23:27:38 +01:00
2014-05-03 23:27:38 +01:00
2014-05-03 23:27:38 +01:00
2014-05-12 00:13:10 +02:00
2014-05-03 23:27:38 +01:00
2014-05-21 19:42:43 +01:00
2014-05-28 14:51:12 +01:00
2014-05-25 22:12:56 +03:00
2014-05-03 23:27:38 +01:00
2014-05-21 19:42:43 +01:00
2014-05-11 02:27:42 +03:00
2014-05-03 23:27:38 +01:00
2014-05-03 23:27:38 +01:00
2014-05-21 19:42:43 +01:00
2014-05-21 19:42:43 +01:00
2014-05-06 16:52:35 +00:00
2014-05-25 22:27:57 +01:00
2014-05-03 23:27:38 +01:00
2014-05-21 19:42:43 +01:00
2014-05-31 02:24:47 +03:00
2014-05-03 23:27:38 +01:00
2014-05-31 18:22:01 +03:00
2014-05-03 23:27:38 +01:00
2014-05-03 23:27:38 +01:00
2014-05-28 14:51:12 +01:00
2014-05-28 14:51:12 +01:00
2014-05-28 14:51:12 +01:00
2014-05-17 11:20:10 +03:00
2014-05-25 22:12:56 +03:00
2014-05-03 23:27:38 +01:00
2014-05-17 11:20:10 +03:00
2014-05-03 23:27:38 +01:00
2014-05-03 23:27:38 +01:00
2014-05-24 23:03:12 +01:00
2014-05-21 19:42:43 +01:00
2014-05-22 00:32:00 +03:00
2014-05-24 23:03:12 +01:00
2014-05-03 23:27:38 +01:00
2014-05-24 23:03:12 +01:00
2014-05-25 01:42:24 +03:00
2014-05-31 11:00:25 +03:00
2014-05-25 22:34:34 +01:00
2014-05-25 22:34:34 +01:00
2014-05-25 22:12:56 +03:00
2014-05-11 18:00:45 +01:00
2014-05-24 23:03:12 +01:00
2014-05-03 23:27:38 +01:00
2014-05-11 18:37:21 +01:00
2014-05-03 23:27:38 +01:00
2014-05-28 14:51:12 +01:00
2014-05-28 14:51:12 +01:00
2014-05-03 23:27:38 +01:00
2014-05-03 23:27:38 +01:00
2014-05-28 14:51:12 +01:00
2014-05-03 23:27:38 +01:00
2014-05-10 04:45:15 +03:00
2014-05-03 23:27:38 +01:00
2014-05-03 23:27:38 +01:00
2014-05-03 23:27:38 +01:00
2014-05-05 21:28:12 +03:00
2014-05-06 02:28:49 +03:00
2014-05-25 22:27:57 +01:00
2014-05-25 22:27:57 +01:00
2014-05-31 07:30:57 +01:00
2014-05-21 20:32:59 +01:00
2014-05-21 20:32:59 +01:00
2014-05-28 14:07:21 +01:00
2014-05-28 14:51:12 +01:00
2014-05-28 14:07:21 +01:00
2014-05-21 20:32:59 +01:00
2014-05-03 23:27:38 +01:00
2014-05-25 22:12:56 +03:00
2014-05-24 23:03:12 +01:00
2014-05-28 14:51:12 +01:00
2014-05-28 14:51:12 +01:00
2014-05-25 22:34:34 +01:00
2014-05-03 23:27:38 +01:00
2014-05-11 17:53:11 +01:00
2014-06-01 12:32:28 +01:00
2014-05-12 09:06:18 +02:00
2014-05-03 23:27:38 +01:00