Torsten Ruger
884bf23e5f
fix elf test
2016-12-15 17:57:45 +02:00
Torsten Ruger
b93f207638
some common instruction extration
2016-12-15 12:38:22 +02:00
Torsten Ruger
fdefb8e7a5
more refactoring on compare
2016-12-15 12:38:03 +02:00
Torsten Ruger
ec2b0a563e
bunch of method extraction on instructions
2016-12-14 21:53:26 +02:00
Torsten Ruger
55c108a8d7
refactor move_instruction a bit
2016-12-14 21:13:41 +02:00
Torsten Ruger
b3eeb7db21
memory instruction refactor (small)
2016-12-14 21:05:24 +02:00
Torsten Ruger
6eea3f2b2a
refactor logic instruction
2016-12-14 20:31:37 +02:00
Torsten Ruger
c1d23a8d48
whitespace round plusses
2016-12-14 19:57:09 +02:00
Torsten Ruger
27e7a362db
comment unused code
2016-12-14 19:52:08 +02:00
Torsten Ruger
56bf875f36
refactor call_instruction
2016-12-14 19:07:03 +02:00
Torsten Ruger
bf4ddd16ee
remove dead code
2016-12-14 19:06:48 +02:00
Torsten Ruger
456e9b1ec0
folded salama-arm in
2016-12-14 13:43:13 +02:00
Torsten Ruger
a8453c126d
use arm shift at runtime
...
arm indexes are in bytes (x4) at compile time
but at runtime we only have the array indexes, iw word indexes
arm has the nice barrel shifter to save us an extra instruction
2015-11-19 12:48:13 +02:00
Torsten Ruger
249f43ad34
translate and interpret new instructions
2015-11-19 10:09:55 +02:00
Torsten Ruger
303b7eb1f8
putstring unfolds length
...
which means sys call doesn’t need to
and also interpreter sometimes gets a symbol length
2015-11-16 18:03:29 +02:00
Torsten Ruger
f50d7b57a4
fix the putstring sys call indexing
...
index 0 is the marker word , so like in some, all indexes 1 based
works :-)
2015-11-15 22:03:06 +02:00
Torsten Ruger
8e82da0b61
fix arm (assembled) indexing
...
by having a dummy 0 index in salaam. when assembled
2015-11-15 20:42:07 +02:00
Torsten Ruger
458610b970
implement string length
2015-11-15 11:28:16 +02:00
Torsten Ruger
b30cf21bbd
fix arm indexes
...
needs rethought
fixed for static use, but what about dynamic
2015-11-15 00:35:12 +02:00
Torsten Ruger
6127d92ca9
implement arm branches
...
which backfired into interpreter as
plus actually means 0 or plus in arm
may still change back but for now
2015-11-14 00:20:03 +02:00
Torsten Ruger
6f0d6d831e
update arm and implement most operators
...
multiplication wasn’t implemented
and division isn’t part if arm
neither is rotate by register
2015-11-12 20:02:14 +02:00
Torsten Ruger
c38775e933
add set_internal
...
and the set_slot with register
very much like the get_slot for get_internal
2015-11-08 17:10:36 +02:00
Torsten Ruger
484e2d19d4
allow for registers in get slot
2015-11-07 19:38:03 +02:00
Torsten Ruger
c15445a958
let labels be constants
2015-11-03 16:20:25 +02:00
Torsten Ruger
3774f8a5a2
use translator and remove passes
...
the only passes that were left were reg -> arm
those are almost completely one to one, so the idea of passes didn’t fit
2015-10-24 17:11:18 +03:00
Torsten Ruger
a871f96630
remove passes and achieve the same by translating
2015-10-24 11:42:36 +03:00
Torsten Ruger
f4f703975b
removed arm and use as gem
2015-07-18 14:12:20 +03:00
Torsten Ruger
e1c19dee80
remove old to_asm
...
very strange that is was called in 1.9 but not 2.0
2.0 seems to delay interpolating strings
2015-07-18 12:15:07 +03:00
Torsten Ruger
f5136b6b68
minor formatting
2015-07-18 11:52:30 +03:00
Torsten Ruger
50da6a40f2
Move the Main instruction from register to virtual
...
also needs a branch in register.
This way the register level is self sufficient
(noticed while writing debugger)
2015-07-17 13:21:57 +03:00
Torsten Ruger
b670e058a9
fixes to get opal to work
...
opal has bug with << and |=, but changing syntax works
2015-07-12 10:01:45 +03:00
Torsten Ruger
b61c73acdd
renamed info to MethodSource
2015-07-03 20:13:03 +03:00
Torsten Ruger
e959c5b0f5
fixed wrong exit code
...
no wonder it was set faulting, duh
2015-07-02 13:50:13 +03:00
Torsten Ruger
3195d800e9
fix putstring file descriptor
2015-07-02 09:49:52 +03:00
Torsten Ruger
1b791dc0d0
putstring was missing the steam id
2015-07-01 21:42:59 +03:00
Torsten Ruger
047c77e186
fixed that darn method address bug
2015-07-01 09:47:10 +03:00
Torsten Ruger
9541712af8
fixing all the indexes
...
with the type word and layout
but the list starting at 1, indexes still need 1 added
and for arm x 4.
Tried to get all that into one function, resolve_index
2015-06-30 18:38:56 +03:00
Torsten Ruger
88f45cbf15
weird 4 to add for call works
2015-06-30 18:36:57 +03:00
Torsten Ruger
553f30c874
more ripples from removing index constants
2015-06-29 20:58:06 +03:00
Torsten Ruger
31635d9747
fixing index issues
2015-06-28 22:01:13 +03:00
Torsten Ruger
99b59d920c
constant fixes
2015-06-28 10:52:02 +03:00
Torsten Ruger
a00a49ecdb
fix frame indexes
2015-06-28 10:50:47 +03:00
Torsten Ruger
ef42abe611
unifying register comstants
...
were in several files with different names
many files touched, but just renames
2015-06-27 21:16:46 +03:00
Torsten Ruger
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
Torsten Ruger
294ea8de4f
fix the move, correct for funny pipeline
2015-06-27 20:07:42 +03:00
Torsten Ruger
d0d857bbe0
fix object loading
...
by (ahem) copying the code from MoveInst.
2015-06-26 20:36:00 +03:00
Torsten Ruger
55b7ca83e1
fixing load constant
...
which needs to add to pc to get an object reference
2015-06-26 20:01:52 +03:00
Torsten Ruger
108cc8af45
minor cleanup
2015-06-26 20:00:50 +03:00
Torsten Ruger
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
Torsten Ruger
32e1903884
finished init routine
...
and better implemented sys calls
2015-06-25 16:31:09 +03:00
Torsten Ruger
cedc6e1b61
Fix parfait bug for word_length
2015-06-24 16:08:06 +03:00
Torsten Ruger
59188105ba
finish syscall
...
works, even had to fix parfait bug to see
2015-06-24 16:07:27 +03:00
Torsten Ruger
1a82ebcd69
mor on sys call implementation
2015-06-23 19:55:54 +03:00
Torsten Ruger
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
Torsten Ruger
6f111a5ae0
fix the initial jump
2015-06-10 10:43:50 +02:00
Torsten Ruger
1c29fcfd43
mem_length to word/byte length
...
be more specific, and don’t include padding
2015-06-05 09:20:43 +03:00
Torsten Ruger
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
Torsten Ruger
336e6c18de
register reference creation got more complicated
2015-06-01 08:34:17 +03:00
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