Z80 Emulation Engine

ketmar via Digitalmars-d-announce digitalmars-d-announce at puremagic.com
Sun Apr 20 10:57:49 PDT 2014


On Sunday, 20 April 2014 at 13:08:02 UTC, bearophile wrote:
>> sorry, it uses GDC @attribute("forceinline") feature, so you
> Have you performed a benchmark with and without that attribute?
not on this code yet. will check it someday,

>> http://repo.or.cz/w/zymosis.d.git
> In this kind of code computed gotos could help performance.
i don't think so: it's not a 'table-driven executor', it does 
proper instruction decoding by various opcode bitfields like Z80 
do. this is "by design". so i can't just make a huge table for 
computed goto.

>> struct { ubyte c, b; };
> Struct definitions in D don't end with the semicolon.
ah. tnx, this is a C code leftovers. maybe compiler should emit 
warnings on superfluous semicolons?

> I suggest to omit the space between the function name and its 
> arguments.
sorry, but i will not change my coding style. i may use original 
author's style when sending patches, but i'm used to my own for 
my projects.

> And if you want you can also add an "in":
tnx, will do.

> And perhaps it's better to use enum values instead of magic 
> constants.
this is hardware magic by itself. %-) i don't think that 
constants like 'BIT7MASK' and 'BITS0TO6MASK' will look prettier 
here.

>> static __gshared ubyte parity_tbl[256];
> Better to use the D syntax:
> static __gshared ubyte[256] parity_tbl;
ah, C leftovers again, changed, tnx.

thanks for all your comments and suggestions. i'm still D newbie, 
so they are valuable input.


More information about the Digitalmars-d-announce mailing list