Hi this is paul cockshott who has recently joined. I work on hardware description languages and automatic generation of parallelising code generators. I would...
... Hi Paul, welcome aboard. Sorry I didn't get a chance to reply earlier, I've had a hectic week here. If you look at the sort of register transfer...
... Actually I found some by doing a Google search on ICLG and Cockshott: http://www.dcs.gla.ac.uk/~wpc/reports/ilcg/mmxcomp.html#tth_chAp3 There's some...
I have a couple of tools so far both very similar. ILCG is a program written in java that will take a machine description in ilcg source code and write a java...
Thanks for the links, Paul. Since you're new to this area it occurred to me you might not be familiar with some of the existing work. Pretty much the ...
... name=Content&pa=showpage&pid=68&page=1 Here's a page of one of the other guys in their company who works with them: http://www.vavasour.ca/jeff/games.html...
... and it would appear from hints on the page plus the article above that the Atari (Asteroids etc) emulation on the GBA is actually a static binary...
... few ... and ... the ... An update: I've been working quietly on the 6502 translator and I just discovered a nastiness with the 6502 instruction set. Almost...
This seems like way too much trouble for what boils down to little more than one extra store. Nearly all of the instructions set both N and Z, but if you are...
... In the context of a traditional emulator I'd agree 100% but when you're getting down to something like 1 to 3 target instructions per source instruction,...
Because of the high overlap I'm posting this to compilers101 and staticrecompilers as well. But please followup to dynarec. ... Hello guys, I'm bored out of...
Okay, I'm just starting off with my static recompiler and am doing call
tree/depth traversal. The code works so far! Looks like I don't yet have
enough entry...
... Yup - that's the case here, too. There's another spot that contains a jump table or two in there as well. I did find other code laying around. Also, one...
Neil Bradley
nb@...
Jun 29, 2004 3:43 pm
128
... contains a jump ... My initial strategy with the Cinemu was to first tree-walk as much as I could, then have a rapid change/test loop to add new addresses...
1) http://www.dwelch.com/ipod/asteroids.htm I ported Asteroids to the iPod. 2) To disagree with Graham, for the above SBT, what I did was for each instruction...
... I found several places where sequences of code with EX (SP), HL giving a very good hint as to where a jump location could be. It seems to be a common...
Neil Bradley
nb@...
Jun 29, 2004 6:11 pm
131
... Yup. All I have to do is add the entry point to my list: entry 0, 0x08, 0x10, 0x2f8, invaders; and recompile. Done! Fairly simple to do, actually, and when...
Neil Bradley
nb@...
Jun 29, 2004 6:22 pm
132
I'm in the process of creating a static recompiler that is extensible to multiple sources and targets. At this point I have it doing an opcode call tree build...
Neil Bradley
nb@...
Jun 29, 2004 6:40 pm
133
... Be careful there: it depends on what style of emulator you are writing; there are 3 choices: 1) keeping a flag byte up to date to match the CPU status...
... Can't you trap those with a 'default' case and cause a runtime error, rather than just failing to translate the code and dropping through to the wrong part...
... Cool! Any chance I can take a look at the recompiled output? ... What is a "hitlist"? Is it a "list of locations where execution has/will taken place"? ......
Neil Bradley
nb@...
Jun 29, 2004 10:40 pm
136
... Hm... that's something I hadn't considered. At any given point, you can figure out if something else is going to use a given set of flags (on an individual...
Neil Bradley
nb@...
Jun 30, 2004 4:40 am
137
... Each opcode generates several "dump()" calls to output code. Individual calls to dump() include the input and output flags. In the description above when I...
... So are you emitting code on a per instruction basis, or are you developing an in memory tree of everything and taking another pass at it? ... Well, I'm...
Neil Bradley
nb@...
Jun 30, 2004 6:10 am
139
... linear list, only keep enough for a basic block, which means it is flushed on any branch. G...
... You can statically find *most* jump destinations. Then you can run under an emulator and locate the dynamic jumps, with the emulator's help. Once you know...
... [...] ... There is one problem with that approach: I have seen many old programs that used tricks and had a real opcode used as an immediate value: 100...
... I've seen that at Acorn where they would define a new 6502 opcode called "SKP" which was intended to be a 1-byte skip, but was actually just the opcode of...