Commit Graph

244 Commits

Author SHA1 Message Date
97b4c469f8 fixing register order in some instructions
and their use
Arm is confusing as it has result as first arg
we use forward logic, i.e. from -> to
2015-06-27 20:09:21 +03:00
294ea8de4f fix the move, correct for funny pipeline 2015-06-27 20:07:42 +03:00
d0d857bbe0 fix object loading
by (ahem) copying the code from MoveInst.
2015-06-26 20:36:00 +03:00
55b7ca83e1 fixing load constant
which needs to add to pc to get an object reference
2015-06-26 20:01:52 +03:00
108cc8af45 minor cleanup 2015-06-26 20:00:50 +03:00
37403f1139 fix misunderstood mov usage
When moving a reference (pointer) to a register
one needs to ADD to the pc
i.e. one needs an add, not mov instruction
2015-06-26 20:00:33 +03:00
32e1903884 finished init routine
and better implemented sys calls
2015-06-25 16:31:09 +03:00
cedc6e1b61 Fix parfait bug for word_length 2015-06-24 16:08:06 +03:00
59188105ba finish syscall
works, even had to fix parfait bug to see
2015-06-24 16:07:27 +03:00
1a82ebcd69 mor on sys call implementation 2015-06-23 19:55:54 +03:00
d8fa266b5d fix method call addresses
was jumping to the method
but needs to jump to the code of the method
2015-06-10 11:10:46 +02:00
6f111a5ae0 fix the initial jump 2015-06-10 10:43:50 +02:00
1c29fcfd43 mem_length to word/byte length
be more specific, and don’t include padding
2015-06-05 09:20:43 +03:00
5726d2c181 move machine to module level
makes for shorter, more concise, access
also remove one more bug possibility
(reinitiation)
2015-06-01 08:40:17 +03:00
336e6c18de register reference creation got more complicated 2015-06-01 08:34:17 +03:00
e651b57d08 homing in on line length 100 2015-05-30 12:20:39 +03:00
33d464f032 minor 2015-05-30 11:56:47 +03:00
3e9e650764 fix arm tests 2015-05-29 12:47:49 +03:00
a46b2d5c56 update to use parfait not virtual
more ripples
reverting to integers (not virtual::integer)
2015-05-29 12:33:40 +03:00
2ccbea04b9 fixing assembly
position code changed and linking too
passes not working
2015-05-24 18:05:20 +03:00
422ec64105 all green
That fixes all existing tests. Operation successful

Off course there is tests missing :-(
2015-05-20 17:29:08 +03:00
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
e4c799ecb6 first tests comping through after ast/compile change 2015-05-04 23:03:52 +03:00
9ac165c34c some checks 2014-10-07 12:23:27 +03:00
b7164b354d better solution for initial jump 2014-10-07 12:01:33 +03:00
5c90ad83e0 add initial jump instruction 2014-10-06 19:57:44 +03:00
486580aeb2 fix bad scoping bug 2014-10-05 01:12:44 +03:00
d38097aea4 fixing pass order by require order (easier to track) 2014-10-05 01:12:16 +03:00
3aca3cc33d making good headway with register machine implementation in arm 2014-10-05 01:05:18 +03:00
7968cadaf9 remove singleton in arm machine and use class methods 2014-10-04 17:34:51 +03:00
c5655b1059 a long string of import order and namespace issues which is not over yet 2014-10-03 14:52:47 +03:00
1347a85eb7 fixing import order 2014-10-03 14:33:06 +03:00
a083c03b1d move function call instruction to register level and the pass to arm 2014-10-03 14:32:54 +03:00
38a286942e move the hash access stuff to arm, not sure if needed at all 2014-10-03 11:05:17 +03:00
220d9f6213 moving instrctions into own folders and arm machine out of the way 2014-10-03 10:25:10 +03:00
ad73e320b0 moved unsued code out of the way 2014-10-02 22:34:58 +03:00
277dddeb6a time was up for the Bassembler 2014-10-02 22:33:09 +03:00
1be71918a5 move all arm instructions to own folder and fold inheritance 2014-10-02 22:28:34 +03:00
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
fba66371c0 (semi) proper fix for large moves, integers or virtual constants(was buggy) 2014-09-30 12:07:21 +03:00
527e591e75 fix add instruction and test 2014-09-29 21:04:38 +03:00
7d52e71f5c found and implemented the movw, but not for pi :-( 2014-09-29 20:26:55 +03:00
5a17bf3396 more headway on the (new) frame implementation 2014-09-27 14:59:16 +03:00
4d07113429 add register reference where symbols are allowed 2014-09-25 20:28:40 +03:00
457b40a7de fix api and implement the big constant move 2014-09-18 17:05:59 +03:00
49b6b99ab9 more work on large moves, including the notion of linking again 2014-09-17 17:00:19 +03:00
e7f7f9c319 move fits_u8 to integer constant (from numberic) 2014-09-17 16:23:29 +03:00
e4474e7e2c rename length to mem_length and suffer the consequences 2014-09-17 12:04:54 +03:00
cffa7f1953 small function naming adjustments 2014-09-16 17:16:13 +03:00
db01529b67 eol warning 2014-09-16 17:15:17 +03:00