pro64-support
[Top] [All Lists]

some questions

To: sgi <pro64-support@xxxxxxxxxxx>
Subject: some questions
From: Peng Zhao <pengzhao@xxxxxxxxxxxxxx>
Date: Wed, 22 Aug 2001 15:24:49 -0600 (MDT)
Sender: owner-pro64-support@xxxxxxxxxxx
Hi,

        Following are some questions about whirltree and symbol table.

        1. what is the difference between WN_PARM_BY_REFERENCE &
WN_PARM_BY_VALUE? I found that it doesnot necessarily use BY_REFERENCE
when Pro64 want to generate a "pointer" parameter. I got this opinion
by checking the dumped whirl tree.

        e.g. from InnerProduct(&a);
        we get:

        U8LDA [[0]] <2,3,a> T<30,anon_ptr.,8>
      U8PARM #2 T<30,anon_ptr.,8> # by_value
     VCALL #126 <1,21,InnerProduct> # flags 0x7e

        the parameter is "by_value" instead of "by-reference"

        2. From the "WHIRL SYMBOL TABLE SPECIFICATION", " in a nested
procedure, three ST_TABs are visible: its own local ST_TAB, the parent
PU's ST_TAB and the global ST_TAB". Can somebody explain me why the parent
PU's ST_TAB should be visible to the nested function?

        3. What is the difference between STR_TAB & TCON_STR_TAB? the
document mentions there difference in terms of null-terminatation. But I
still cannot see the point? why we need the same thing with two styles?

        4. Is there any possibility that a function is placed
dis-contiguously in the final executable (use jmp to connect the control
flow)?


        Thanks

        
        


<Prev in Thread] Current Thread [Next in Thread>