At 08:42 AM 12/26/2001 -0800, Boris Tschirschwitz wrote:
>On Wed, 26 Dec 2001, Jason Gloudon wrote:
>
> > branch is a relative branch, look at the code generated for it:
> >
> > static opcode_t *
> > Parrot_branch_ic (opcode_t cur_opcode[], struct Parrot_Interp *
> interpreter) {
> > return cur_opcode + cur_opcode[1];
> > }
>
>Yes, I see.
>In parrot assmebly it looks like an absolute branch.
>The assembler translates 'branch JOHN' to a relative branch.
>I still find it confusing to describe the assmebly opcode 'branch IC' as a
>relative branch, but I suppose thats due to my not being used to the
>conventions.
It's a handy convention, one we've stolen from a long tradition of
assemblers. :) Branches are traditionally relative offsets while jumps are
absolute offsets. Having the assembler figure out the offset given a label
saves a whole lot of hassle, since that's what you're going to be going anyway.
Dan
--------------------------------------"it's like this"-------------------
Dan Sugalski even samurai
[EMAIL PROTECTED] have teddy bears and even
teddy bears get drunk