Re: Q: newsub opcodes

2004-10-30 Thread Leopold Toetsch
Brent 'Dax' Royal-Gordon <[EMAIL PROTECTED]> wrote: > ... We could probably do something very clever to abstract it, > like load all the constants into a reserved, dynamically-sized set of > registers starting at [INSP]32. That doesn't work. Registers are accessed per interpreter/thread and now

Re: Q: newsub opcodes

2004-10-29 Thread Brent 'Dax' Royal-Gordon
Dan Sugalski <[EMAIL PROTECTED]> wrote: > At 10:17 PM +0200 10/29/04, Leopold Toetsch wrote: > >That leads again to my warnocked proposal to just toss all variants > >of opcodes that have constants too. With all possible PMC constants > >in the constants table, we get another (estimated) times two

Re: Q: newsub opcodes

2004-10-29 Thread Dan Sugalski
At 10:17 PM +0200 10/29/04, Leopold Toetsch wrote: Dan Sugalski wrote: At 4:36 PM +0200 10/29/04, Leopold Toetsch wrote: Well, they are implemented, at least partly. Sub PMCs are in the constant table. The funny C "opcode" is actually a ... set_p_pc op. ... with the small difference, that at com

Re: Q: newsub opcodes

2004-10-29 Thread Leopold Toetsch
Dan Sugalski wrote: At 4:36 PM +0200 10/29/04, Leopold Toetsch wrote: Well, they are implemented, at least partly. Sub PMCs are in the constant table. The funny C "opcode" is actually a ... set_p_pc op. ... with the small difference, that at compile time, the integer argument is a label (offset)

Re: Q: newsub opcodes

2004-10-29 Thread Dan Sugalski
At 4:36 PM +0200 10/29/04, Leopold Toetsch wrote: Dan Sugalski <[EMAIL PROTECTED]> wrote: get_sub Px, foo # find the PMC with label "foo" in constants Yeah, but I think I've a better approach. Instead of doing this, let's just get PMC constants implemented. Well, they are implemented, at le

Re: Q: newsub opcodes

2004-10-29 Thread Leopold Toetsch
Dan Sugalski <[EMAIL PROTECTED]> wrote: >> >> get_sub Px, foo # find the PMC with label "foo" in constants > Yeah, but I think I've a better approach. Instead of doing this, > let's just get PMC constants implemented. Well, they are implemented, at least partly. Sub PMCs are in the constant t

Re: Q: newsub opcodes

2004-10-29 Thread Dan Sugalski
At 2:46 PM +0200 10/29/04, Leopold Toetsch wrote: When PIR code has a function call syntax: foo(i, j) the created code has currently (amongst other) a line: newsub Px, .Sub, foo where the label "foo" is a relative branch offset. This is suboptimal for several reasons: [snip] So I think, we shou

Q: newsub opcodes

2004-10-29 Thread Leopold Toetsch
When PIR code has a function call syntax: foo(i, j) the created code has currently (amongst other) a line: newsub Px, .Sub, foo where the label "foo" is a relative branch offset. This is suboptimal for several reasons: - it creates a new PMC for every call albeit in 99.99% of cases the PMC con