Go to the first, previous, next, last section, table of contents.
<dt> ET_BR_TARGET
<dd> Used With: JMP and BR. <br>
Head: BBL containing jsr/bsr instruction.
Tail: Init BBL of target function. <br>
Stored in: ABBL_BR_TARGET <br>
<dt> ET_FALL_THRU
<dd> Used With: Fall Throughs <br>
Head: this BBL <br>
Tail: Next BBL <br>
Stored in: ABBL_FALL_THRU <br>
<dt> ET_EXIT_LINK
<dd> Used With: RET <br>
Head: BBL containing RET instruction, BBL ABBL_JMP (0) <br>
Tail: Exit BBL (dummy), relocatable BBL <br>
<dt> ET_SWITCH
<dd> Used With: RET <br>
Head: BBL containing RET instruction, BBL ABBL_JMP (0) <br>
Tail: Exit BBL (dummy), relocatable BBL <br>
<dt> ET_BR_DUMMY
<dd> Used With: RELOC and setjmp/longjmp type functions <br>
Head: BBL containing RET instruction, BBL ABBL_JMP (0) <br>
Tail: Exit BBL (dummy), relocatable BBL <br>
<dt> ET_COPENSATE
<dd> Used With: RELOC bbls <br>
Head: BBL containing RET instruction, BBL ABBL_JMP (0) <br>
Tail: Exit BBL (dummy), relocatable BBL <br>
</dl>
ET_FUN_CALL
-
Used bbls whose last ins is jsr,bsr or pal_call (BT_CALL,BT_PAL).
Head: bbl containing jsr/bsr/pal_call instruction.
Tail: Init BBL of target function. This will be the init bbl of
PSEUDO_HELL in case of a jsr and PSEUDO_PAL in case of a pall call.
Stored in: ABBL_EDG_CALL
ET_FUN_RETURN edges are automatically created/linked when ET_FUN_CALL edges are created/linked
their index is on higher than the corresponding ET_FUN_CALL edge.
It is necessary that a ET_FUN_LINK edge be present when an ET_FUN_CALL is linked.
ET_JUMP
-
Used bbls whose last ins is a jmp whose targets could NOT be determined (BT_JUMP).
Head: bbl containing jmp instruction.
Tail: init bbl of PSEUDO_HELL
Stored in: nowhere
ET_TRUE
-
Used bbls whose last ins is a conditional branch (IT_IBR,IT_FBR) (BT_BRANCH).
Head: bbl containing conditional branch instruction.
Tail: condition true target
Stored in: ABBL_EDG_TRUE
ET_FALSE
-
Used bbls whose last ins is a conditional branch (IT_IBR,IT_FBR) (BT_BRANCH).
Head: bbl containing conditional branch instruction.
Tail: condition true target
Stored in: ABBL_EDG_FALSE
ET_UNCOND
-
Used bbls whose last ins is an unconditional branch (br) (BT_UNCOND).
Head: bbl containing unconditional branch instruction.
Tail: target
Stored in: ABBL_EDG_FALSE
Please note that ALTO deletes unconditional branches an reintroduces them during
bbl layout. The bbl type is converted to BT_NORM and the edge type to ET_NORM.
ET_NORM
-
Used bbls which unconditionally branch to some target (BT_UNCOND).
Head:
Tail: target
stored in:
ET_FUN_RETURN
-
Head: exit bbl of a function
Tail: return site
stored in: nowhere because there might be a lot of them
ET_FUN_RETURN edges are automatically created/linked when ET_FUN_CALL edges are created/linked
their index is on higher than the corresponding ET_FUN_CALL edge.
It is necessary that a ET_FUN_LINK edge be present when an ET_FUN_CALL is linked.
ET_SWITCH
-
Used bbls whose last ins is a jmp whose targets could be determined (BT_SWITCH).
Head: bbl containing jmp instruction.
Tail: target bbl (These are expected to be GPREL32 relocated bbls)
Stored in: nowhere since there might be a lot of them
ET_FUN_LINK
-
Used bbls whose last ins is jsr,bsr or pal_call (BT_CALL,BT_PAL).
Head: bbl containing jsr/bsr/pal_call instruction.
Tail: Next bbl ( where control return after the function call)
Stored in: ABBL_EDG_LINK
ET_HELL
-
Used to model unknow controlflow.
Head: exit bbl of PSEUDO_HELL
Tail: Relocatable bbl (this is not very nice if relocatable bbl happens to be
function init block, in such a case PSEUDO should CALL the is function)
Stored in:
ET_EXIT_LINK
-
Used with bbls whose last ins is RET (BT_RET)
Head: BBL containing ret instruction.
Tail: Exit BBL (dummy) of containing fun.
It is not necessary to specify the exit bbl when calling
AedgCreateFancy. The routine will figure this out for you.
ET_SETLONGJMP
-
Used to model spurious controlflow introduced by setjmp/longjmp style functions
ET_COMPENSATE
-
Used to compensate for interprocedural controlflow other than calls.
ET_EXTRA
-
Used with branch instructions that generate known addresses by jumping
to the next instruction. Soon there will be no need for this anymore.
The only remaining occurrence of such a branch is for setting the initial gp.
Go to the first, previous, next, last section, table of contents.