Dan --

[snip]

> I'll have to snag that manual next time I'm around a good bookstore. I've 
> not read it as of yet, and Knuth generally has good things to say.

You can grab PDFs here:

    http://link.springer.de/link/service/series/0558/tocs/t1750.htm

Of course, you can also browse around on Knuth's site for other related
stuff...

    http://www-cs-faculty.stanford.edu/~knuth/mmix-news.html

> A split between local, marginal, and global registers would be an 
> interesting thing to do, and I can see it making the code more elegant. I 
> worry about it making things more complex, though, especially with us 
> already having multiple register types. (We'd double or triple the number 
> of register types essentially, and to some extent blow cache even more than 
> we do now. Might be a win in other ways, though. I'll have to ponder a bit)

Yeah, I didn't like the idea of proliferating that more either. I still
sometimes dream about a single register file of N regs into which we can
put whatever we want. Each block of registers has room for the reg
contents and the type info too. Seems you've got some of the support for
that figured out in the stack already. Just declare that either (a) it
is illegal (or behavior undefined) to do

  set $2, 5
  set $3, "foo bar"
  add $1, $2, $3

[just because we have higher-level data types than a "real" machine
doesn't mean we can't still have general-purpose registers, I think]

or (b) that if you do something numeric with a register that is
non-numeric type mucking happens behind the scenes and throws an
exception if there is a problem. Certainly this wouldn't be surprising
to anyone who had been looking at what we do with PMCs and arithmetic
ops.

If we ever did move to such a single-register-file model, I'd support
looking seriously at the calling conventions of MMIX to see if we can
get the appropriate performance characteristics. And, BTW, we have
4*32 = 128 regs now. We could even match the logical register count
of MMIX (256) with only a doubling of total register count. And, if
we ever determined we needed another kind of register (such as one
that can be used for address arithmetic, since INTVAL doesn't cut it),
we wouldn't have to add a fifth file, we'd just add another type
(thinking again about the stack implementation).

[snip]

> >Yeah. I'm trying very hard not to put anything really sophisticated
> >into jakoc (at least not yet). Right now I can still tweak things
> >reasonably well. If I add much more complexity, I'm going to have
> >to actually write a real compiler, and if I write a real compiler I
> >probably won't be able to resist the temptation to turn Jako into the
> >language I *really* wish I had, and that would be a bigger project.
> 
> And this would be a bad thing because? (Well, besides the demands on what 
> little free time you might have now, but that's not our problem... :)

It might be a bad thing because Jako would then not be a little demo
language. I suppose I could start from scratch, but then I'd have to
come up with another language name (oh the horrors!)

[snip]


Regards,
 
-- Gregor
 _____________________________________________________________________ 
/     perl -e 'srand(-2091643526); print chr rand 90 for (0..4)'      \

   Gregor N. Purdy                          [EMAIL PROTECTED]
   Focus Research, Inc.                http://www.focusresearch.com/
   8080 Beckett Center Drive #203                   513-860-3570 vox
   West Chester, OH 45069                           513-860-3579 fax
\_____________________________________________________________________/

Reply via email to