Commit Graph

108 Commits

Author SHA1 Message Date
Torsten Ruger d7a60f2803 new register allocation generates good looking push/pop 2014-06-09 19:24:09 +03:00
Torsten Ruger b66c4157d5 keep track of used and assigned registers for each block 2014-06-08 01:41:56 +03:00
Torsten Ruger e7bb774da0 fix block insert ordering with depth > 1 2014-06-08 00:56:15 +03:00
Torsten Ruger 0a14cffefb fixing fragment tests, most done 2014-06-07 23:22:32 +03:00
Torsten Ruger 6b715bbb1b remoe hash attributes (less magic) and make attributes on context explicit 2014-06-07 22:41:02 +03:00
Torsten Ruger 36f237c633 removed the (too) fancy dsl. Also introduce register indirection 2014-06-07 17:59:44 +03:00
Torsten Ruger 6433a394e7 adding receiver and a register abstraction 2014-06-06 21:49:03 +03:00
Torsten Ruger c59f22f11f first oo program to compile. But no worries, there is still work left to be done 2014-06-05 18:17:00 +03:00
Torsten Ruger 72d4adc7af another step closer to a working oo system 2014-06-03 22:16:57 +03:00
Torsten Ruger ca19f5cb16 move to syms for names 2014-06-03 20:47:06 +03:00
Torsten Ruger b7c2089046 the further down this goes, the smaller the circles. Soon the point will come. And then back out 2014-06-03 14:49:02 +03:00
Torsten Ruger 88a26414eb change the debug output to be more readable 2014-06-02 15:11:48 +03:00
Torsten Ruger 31a55b07ac makes memory a three operand instruction, like add etc. But 3 regs are still undone 2014-06-01 21:20:44 +03:00
Torsten Ruger 08bbad0fdc more on classes, have to work on asm next 2014-06-01 21:03:08 +03:00
Torsten Ruger 4038bd331a clean up block names and export of qualified names makes assembler nicer to read 2014-05-31 17:02:55 +03:00
Torsten Ruger 5756e0b325 move that test to core (cant be done in compiled code) and focus on string addition instead 2014-05-31 16:43:03 +03:00
Torsten Ruger a6f02d6be3 let the BootClasses carry functions, ie one level squeezed between object_space and funtion, the class is coming to life 2014-05-31 14:35:33 +03:00
Torsten Ruger 3713d08748 renamed program to boot_space, as in object_space at boot time. thats the way its going 2014-05-31 12:52:29 +03:00
Torsten Ruger c9c484f353 change program to inherit stright from code, not block (as it keeps the funcitons anyway) 2014-05-31 12:38:15 +03:00
Torsten Ruger 4186c9cafe add <= operator for fibo 2014-05-28 20:10:16 +03:00
Torsten Ruger e9720c4c54 padding with space not zero 2014-05-28 14:27:37 +03:00
Torsten Ruger 5afa6f4239 move the if logic around (execute false first) and fix the parameters passing 2014-05-25 11:35:45 +03:00
Torsten Ruger 5a5b016a7e use crystal calling convention, documented in readme 2014-05-25 10:57:56 +03:00
Torsten Ruger 6ac92cac3a working on registers, awip (a work in progress) 2014-05-25 08:43:07 +03:00
Torsten Ruger 61a60abd08 ridiculously easy to implement the if now 2014-05-24 10:41:57 +03:00
Torsten Ruger 2c90006697 that fixes the while. To work. Actually work. Fibonacci and all :-) 2014-05-23 20:27:14 +03:00
Torsten Ruger 86e73bf1ba save and restore the right registers 2014-05-22 21:55:17 +03:00
Torsten Ruger 4f0b769e82 get conditions to work for while 2014-05-22 21:38:57 +03:00
Torsten Ruger 7c2d149106 solves control flow issue when adding blocks 2014-05-22 16:35:59 +03:00
Torsten Ruger 8596fb312d while coded 2014-05-22 14:56:31 +03:00
Torsten Ruger ccf88319e0 gives function the list of blocks it needs for branching and documents also the blocks better 2014-05-22 14:18:22 +03:00
Torsten Ruger cf87c5323d using the next field of blocks for a consecutive code line 2014-05-22 13:59:47 +03:00
Torsten Ruger e3bccaa0fe thats putstring working again (better testing == better code => better sleep, longer life :-) 2014-05-21 21:27:05 +03:00
Torsten Ruger 587fd56300 remove a layer of indirection 2014-05-21 21:15:23 +03:00
Torsten Ruger bc278a61eb using function args for call 2014-05-21 21:12:46 +03:00
Torsten Ruger 46102e56ad rename c to register machine 2014-05-21 19:43:46 +03:00
Torsten Ruger 937f566b27 value is not derived from code (was too much generalisation/confusing) 2014-05-21 19:41:51 +03:00
Torsten Ruger 067cde8d43 remove remnant of old dsl 2014-05-21 19:34:58 +03:00
Torsten Ruger c36a08d52d small fixes 2014-05-21 19:33:58 +03:00
Torsten Ruger 847a486288 fix from assign 2014-05-21 19:06:06 +03:00
Torsten Ruger 2df2dcc528 function now returns locals, not free registers 2014-05-21 16:42:36 +03:00
Torsten Ruger e1f889fd10 fix fibo with new syntax. certainly works for operators, but not everything 2014-05-21 12:47:40 +03:00
Torsten Ruger 16a07d5aa2 fixed method_missing to check whether local var exists (not gobble everything up) 2014-05-21 12:44:36 +03:00
Torsten Ruger 53cfeb72a4 fix test and remove hack for - 2014-05-21 12:42:54 +03:00
Torsten Ruger 9d873d3cba implement string loading and convert hello test 2014-05-20 19:21:29 +03:00
Torsten Ruger c7a2ce5af9 phase 2, add/sub instructions work with +- operator 2014-05-20 11:54:59 +03:00
Torsten Ruger c3c6928dc8 phase one, assignment for constants (moves) work 2014-05-20 11:14:18 +03:00
Torsten Ruger 7056f6f05c first step of assignment magic 2014-05-20 11:03:18 +03:00
Torsten Ruger fcf76eed34 better testing for small assembly (for coming changes) 2014-05-20 10:29:08 +03:00
Torsten Ruger 285988f173 putint works, work on syntax goes on 2014-05-19 15:44:12 +03:00