Torsten Ruger
|
e651b57d08
|
homing in on line length 100
|
2015-05-30 12:20:39 +03:00 |
|
Torsten Ruger
|
33d464f032
|
minor
|
2015-05-30 11:56:47 +03:00 |
|
Torsten Ruger
|
3e9e650764
|
fix arm tests
|
2015-05-29 12:47:49 +03:00 |
|
Torsten Ruger
|
a46b2d5c56
|
update to use parfait not virtual
more ripples
reverting to integers (not virtual::integer)
|
2015-05-29 12:33:40 +03:00 |
|
Torsten Ruger
|
2ccbea04b9
|
fixing assembly
position code changed and linking too
passes not working
|
2015-05-24 18:05:20 +03:00 |
|
Torsten Ruger
|
422ec64105
|
all green
That fixes all existing tests. Operation successful
Off course there is tests missing :-(
|
2015-05-20 17:29:08 +03:00 |
|
Torsten Ruger
|
b980def84e
|
move space to parfait
Also make the machine the singleton
and space hang off it
Many repercussions, not all fixed in this commit
|
2015-05-12 15:36:44 +03:00 |
|
Torsten Ruger
|
e4c799ecb6
|
first tests comping through after ast/compile change
|
2015-05-04 23:03:52 +03:00 |
|
Torsten Ruger
|
9ac165c34c
|
some checks
|
2014-10-07 12:23:27 +03:00 |
|
Torsten Ruger
|
b7164b354d
|
better solution for initial jump
|
2014-10-07 12:01:33 +03:00 |
|
Torsten Ruger
|
5c90ad83e0
|
add initial jump instruction
|
2014-10-06 19:57:44 +03:00 |
|
Torsten Ruger
|
486580aeb2
|
fix bad scoping bug
|
2014-10-05 01:12:44 +03:00 |
|
Torsten Ruger
|
d38097aea4
|
fixing pass order by require order (easier to track)
|
2014-10-05 01:12:16 +03:00 |
|
Torsten Ruger
|
3aca3cc33d
|
making good headway with register machine implementation in arm
|
2014-10-05 01:05:18 +03:00 |
|
Torsten Ruger
|
7968cadaf9
|
remove singleton in arm machine and use class methods
|
2014-10-04 17:34:51 +03:00 |
|
Torsten Ruger
|
c5655b1059
|
a long string of import order and namespace issues which is not over yet
|
2014-10-03 14:52:47 +03:00 |
|
Torsten Ruger
|
1347a85eb7
|
fixing import order
|
2014-10-03 14:33:06 +03:00 |
|
Torsten Ruger
|
a083c03b1d
|
move function call instruction to register level and the pass to arm
|
2014-10-03 14:32:54 +03:00 |
|
Torsten Ruger
|
38a286942e
|
move the hash access stuff to arm, not sure if needed at all
|
2014-10-03 11:05:17 +03:00 |
|
Torsten Ruger
|
220d9f6213
|
moving instrctions into own folders and arm machine out of the way
|
2014-10-03 10:25:10 +03:00 |
|
Torsten Ruger
|
ad73e320b0
|
moved unsued code out of the way
|
2014-10-02 22:34:58 +03:00 |
|
Torsten Ruger
|
277dddeb6a
|
time was up for the Bassembler
|
2014-10-02 22:33:09 +03:00 |
|
Torsten Ruger
|
1be71918a5
|
move all arm instructions to own folder and fold inheritance
|
2014-10-02 22:28:34 +03:00 |
|
Torsten Ruger
|
cc08016a0f
|
fix the logic of move, but really there is a deeper issue (we'd have to add to get pc relative addressing for constants)
|
2014-10-02 16:08:24 +03:00 |
|
Torsten Ruger
|
fba66371c0
|
(semi) proper fix for large moves, integers or virtual constants(was buggy)
|
2014-09-30 12:07:21 +03:00 |
|
Torsten Ruger
|
527e591e75
|
fix add instruction and test
|
2014-09-29 21:04:38 +03:00 |
|
Torsten Ruger
|
7d52e71f5c
|
found and implemented the movw, but not for pi :-(
|
2014-09-29 20:26:55 +03:00 |
|
Torsten Ruger
|
5a17bf3396
|
more headway on the (new) frame implementation
|
2014-09-27 14:59:16 +03:00 |
|
Torsten Ruger
|
4d07113429
|
add register reference where symbols are allowed
|
2014-09-25 20:28:40 +03:00 |
|
Torsten Ruger
|
457b40a7de
|
fix api and implement the big constant move
|
2014-09-18 17:05:59 +03:00 |
|
Torsten Ruger
|
49b6b99ab9
|
more work on large moves, including the notion of linking again
|
2014-09-17 17:00:19 +03:00 |
|
Torsten Ruger
|
e7f7f9c319
|
move fits_u8 to integer constant (from numberic)
|
2014-09-17 16:23:29 +03:00 |
|
Torsten Ruger
|
e4474e7e2c
|
rename length to mem_length and suffer the consequences
|
2014-09-17 12:04:54 +03:00 |
|
Torsten Ruger
|
cffa7f1953
|
small function naming adjustments
|
2014-09-16 17:16:13 +03:00 |
|
Torsten Ruger
|
db01529b67
|
eol warning
|
2014-09-16 17:15:17 +03:00 |
|
Torsten Ruger
|
45977ecc01
|
move assembly from visitor into objects, part one
|
2014-09-16 16:06:56 +03:00 |
|
Torsten Ruger
|
dd8e46fd1c
|
move length here
|
2014-09-16 16:05:08 +03:00 |
|
Torsten Ruger
|
56facae658
|
eol signal
|
2014-09-16 16:04:53 +03:00 |
|
Torsten Ruger
|
16b3cacc8d
|
work to move large constants
|
2014-09-16 11:39:08 +03:00 |
|
Torsten Ruger
|
7036a87678
|
fix the address for calls to jump past the method object header
|
2014-09-09 17:36:33 +03:00 |
|
Torsten Ruger
|
ccb5b37a3c
|
reinserted arm for now, until dependecy is cleaned up. fixed tests
|
2014-08-30 19:40:37 +03:00 |
|
Torsten Ruger
|
84d27ce9d9
|
remove arm as it is in own rep now
|
2014-06-30 15:28:39 +03:00 |
|
Torsten Ruger
|
98de7404ef
|
named syscall register
|
2014-06-24 12:40:49 +03:00 |
|
Torsten Ruger
|
17904d8e02
|
rename blocks do_add to be the same as sunctions add_code to blur the difference
|
2014-06-24 12:36:32 +03:00 |
|
Torsten Ruger
|
87fa71277a
|
some inlining and renaming
|
2014-06-14 11:12:53 +03:00 |
|
Torsten Ruger
|
0dbaebf647
|
fix all tests and a little cleaning
|
2014-06-14 10:59:25 +03:00 |
|
Torsten Ruger
|
a7551ea8b6
|
still working on the method dispatch
|
2014-06-13 23:41:45 +03:00 |
|
Torsten Ruger
|
dcd691fe00
|
minor
|
2014-06-12 21:27:47 +03:00 |
|
Torsten Ruger
|
ea0572c836
|
fixed while compilation (block order) and fixed and improved fibo
|
2014-06-12 16:23:57 +03:00 |
|
Torsten Ruger
|
8da1bc4645
|
fix putint (too eager optimization broke it)
|
2014-06-12 13:47:06 +03:00 |
|
Torsten Ruger
|
506f98da5a
|
fixed foo and hello, next putint
|
2014-06-12 09:07:03 +03:00 |
|
Torsten Ruger
|
eef6744827
|
fixes the if test (regs again)
|
2014-06-12 08:34:46 +03:00 |
|
Torsten Ruger
|
b125a7c5c7
|
fix passes, add noop reduction, remove the wretched value operators
|
2014-06-11 21:36:22 +03:00 |
|
Torsten Ruger
|
7cca50cd3a
|
still recoving from previous block - function change. no more exceptions at least
|
2014-06-11 00:38:46 +03:00 |
|
Torsten Ruger
|
e9519d4f05
|
move the code insertion functionality up to function. makes more sense. block still carries code though
|
2014-06-10 23:57:56 +03:00 |
|
Torsten Ruger
|
7ca3207b3e
|
moved registers to machine, changed return to 0 (from 7) and erased all integer references to registers
|
2014-06-10 13:29:01 +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
|
36f237c633
|
removed the (too) fancy dsl. Also introduce register indirection
|
2014-06-07 17:59:44 +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
|
e6e969b4e4
|
a spirited effort to make assembly repeatable
|
2014-06-05 10:46:42 +03:00 |
|
Torsten Ruger
|
41a02a7190
|
small step to making the assmebly process repeatable (is destructive at the moment)
|
2014-06-05 10:28:53 +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
|
88a26414eb
|
change the debug output to be more readable
|
2014-06-02 15:11:48 +03:00 |
|
Torsten Ruger
|
83d4ce55ca
|
fix the load memory instruction
|
2014-06-01 22:06:59 +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
|
4186c9cafe
|
add <= operator for fibo
|
2014-05-28 20:10:16 +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
|
1e326e00b9
|
fix tests after register allocation work
|
2014-05-24 16:52:54 +03:00 |
|
Torsten Ruger
|
61a60abd08
|
ridiculously easy to implement the if now
|
2014-05-24 10:41:57 +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
|
587fd56300
|
remove a layer of indirection
|
2014-05-21 21:15:23 +03:00 |
|
Torsten Ruger
|
46102e56ad
|
rename c to register machine
|
2014-05-21 19:43:46 +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
|
fe1414f383
|
adds hand coded fibo, works
|
2014-05-19 17:32:41 +03:00 |
|
Torsten Ruger
|
285988f173
|
putint works, work on syntax goes on
|
2014-05-19 15:44:12 +03:00 |
|
Torsten Ruger
|
c56b7cdf09
|
minor
|
2014-05-19 11:28:37 +03:00 |
|
Torsten Ruger
|
76f1537174
|
fix some arguemnt names
|
2014-05-18 12:34:53 +03:00 |
|
Torsten Ruger
|
9fc8bfbb55
|
fixin up mov arguments
|
2014-05-18 12:30:49 +03:00 |
|
Torsten Ruger
|
2be96dccdc
|
fix logic instruction arguments
|
2014-05-18 12:18:57 +03:00 |
|
Torsten Ruger
|
6abd10f278
|
started naming instruction arguments properly, starting with compare
|
2014-05-18 11:11:26 +03:00 |
|
Torsten Ruger
|
f65ad813af
|
move first arg into derived intruction constructor
|
2014-05-18 10:27:35 +03:00 |
|
Torsten Ruger
|
a35bba39bc
|
merge logichelper into last class that uses it
|
2014-05-18 10:24:14 +03:00 |
|
Torsten Ruger
|
7b1b2c5d87
|
aliased add_code to <<, to give a bit of the stream feel
|
2014-05-18 10:15:43 +03:00 |
|
Torsten Ruger
|
53666e8b33
|
bit of evaling
|
2014-05-16 23:33:25 +03:00 |
|
Torsten Ruger
|
a08661955f
|
a bit of cleanup and the good news is, we can output a (small) number
|
2014-05-16 23:24:19 +03:00 |
|
Torsten Ruger
|
fee82643e5
|
strangely the coredumps stopped. sure didnt feel like they would
|
2014-05-16 23:08:45 +03:00 |
|
Torsten Ruger
|
7e2210f772
|
renaming update_status_flag to just update_status
|
2014-05-16 19:56:13 +03:00 |
|
Torsten Ruger
|
b3f7b66ceb
|
coding the weird udiv10 and utoa
|
2014-05-16 19:55:46 +03:00 |
|
Torsten Ruger
|
823c11a381
|
more work on instrucitons, mov this time
|
2014-05-16 17:31:01 +03:00 |
|
Torsten Ruger
|
4030f32ead
|
finally coded the logic Shifting (what a beast)
|
2014-05-16 12:55:51 +03:00 |
|
Torsten Ruger
|
87e0f297e3
|
rename extra to right in logic inst
|
2014-05-16 11:27:30 +03:00 |
|
Torsten Ruger
|
ccafb09224
|
rename first hash argument from right to left in logic inst
|
2014-05-16 10:54:56 +03:00 |
|
Torsten Ruger
|
ef17bbf9dd
|
rename left to first in instruction and started on logic instruction cleanup
|
2014-05-16 10:42:25 +03:00 |
|
Torsten Ruger
|
009c0895f4
|
change right syntax to 1.9 style, looks a little nicer
|
2014-05-15 21:35:45 +03:00 |
|
Torsten Ruger
|
a0f0d08e81
|
named the first intruction constructor argument
|
2014-05-15 19:41:51 +03:00 |
|
Torsten Ruger
|
b4c79d218f
|
work on Integer.to_s , not a simple task as it turns out
|
2014-05-15 16:54:23 +03:00 |
|
Torsten Ruger
|
3912e0cd31
|
fix register issues, some typos
|
2014-05-14 22:04:03 +03:00 |
|
Torsten Ruger
|
d8d536aa2c
|
while assembles, now for some nice assmbler reading
|
2014-05-14 12:54:23 +03:00 |
|
Torsten Ruger
|
a5b4f3d9ad
|
remove NumLiteral, replace with IntegerConstant
|
2014-05-14 12:08:06 +03:00 |
|
Torsten Ruger
|
d6b5d46165
|
while compiles. jo
|
2014-05-14 12:02:54 +03:00 |
|
Torsten Ruger
|
d50c38f5ad
|
add more functionality to get while to work (not there yet)
|
2014-05-14 11:33:23 +03:00 |
|
Torsten Ruger
|
2230a4f25e
|
clean up intruction instantiation and fix tests
|
2014-05-14 10:47:30 +03:00 |
|
Torsten Ruger
|
46ea1df51e
|
rename function_call to call_site in all levels to avoid confusion
|
2014-05-13 21:15:02 +03:00 |
|
Torsten Ruger
|
04af367bc0
|
coming together, more and more each day
|
2014-05-13 21:06:12 +03:00 |
|
Torsten Ruger
|
f6711ea49c
|
checkpointing on the mad road to register allocation
|
2014-05-13 18:21:24 +03:00 |
|
Torsten Ruger
|
b0302948dd
|
rename machine to c_machine
|
2014-05-13 17:06:42 +03:00 |
|
Torsten Ruger
|
d7f31e7f39
|
introduce constant class and add block to compile signature(wip, work in progress)
|
2014-05-13 16:24:19 +03:00 |
|
Torsten Ruger
|
e600911fe8
|
adds variable, something compliles , but...
|
2014-05-10 17:55:02 +03:00 |
|
Torsten Ruger
|
5b002c0ff6
|
little more attribute filing
|
2014-05-10 16:08:53 +03:00 |
|
Torsten Ruger
|
9e5b60dfab
|
moving many attributes into the attributes hash, but not nearly all
|
2014-05-10 15:59:46 +03:00 |
|
Torsten Ruger
|
8faf0ba17f
|
phase 1- get rid of the pesty args in structions
|
2014-05-10 15:47:27 +03:00 |
|
Torsten Ruger
|
3f88fe15b4
|
some reagganging on my way to retire logic_helper
|
2014-05-10 15:34:05 +03:00 |
|
Torsten Ruger
|
79a28ac5fa
|
trying to get function calls to work (but will have to rework regeister handling)
|
2014-05-10 15:24:56 +03:00 |
|
Torsten Ruger
|
f7f0eee31a
|
adjust program tests to new syntax, hello world works there too -)
|
2014-05-08 14:14:15 +03:00 |
|
Torsten Ruger
|
ee864fc602
|
fixed arm tests to use ArmMachine
|
2014-05-07 14:58:38 +03:00 |
|
Torsten Ruger
|
4135c4d2dc
|
crystal says Hello.
|
2014-05-06 21:36:28 +03:00 |
|
Torsten Ruger
|
12b6800efe
|
work on function entry and exit. fix stack instructions
|
2014-05-06 12:42:43 +03:00 |
|
Torsten Ruger
|
22b5117c8b
|
getting a _start and _exit, just missing the actual code
|
2014-05-06 00:12:04 +03:00 |
|
Torsten Ruger
|
7d20b5e2df
|
at least its in shape to start debugging again (that must count as half full)
|
2014-05-05 22:21:11 +03:00 |
|
Torsten Ruger
|
de66238a9e
|
moved all compile to ast, vm does link and assemble. Getting there
|
2014-05-05 11:03:43 +03:00 |
|
Torsten Ruger
|
7c0aa8ae7d
|
getting better, but somethings off
|
2014-05-05 09:35:40 +03:00 |
|
Torsten Ruger
|
a61170942f
|
so close i can smell it, checkpoint
|
2014-05-03 22:18:04 +03:00 |
|
Torsten Ruger
|
04e4dc872e
|
check
|
2014-05-03 18:51:47 +03:00 |
|
Torsten Ruger
|
1c86ecb84e
|
copied asm here so that stays working while i break (an) arm
|
2014-05-03 15:13:15 +03:00 |
|