mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2024-08-23 02:29:18 +00:00
Reorder the comments of EmitExceptionTable.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@163194 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
fd91d8dd7e
commit
ec90cc8b0f
@ -43,26 +43,6 @@ protected:
|
||||
/// MMI - Collected machine module information.
|
||||
MachineModuleInfo *MMI;
|
||||
|
||||
/// EmitExceptionTable - Emit landing pads and actions.
|
||||
///
|
||||
/// The general organization of the table is complex, but the basic concepts
|
||||
/// are easy. First there is a header which describes the location and
|
||||
/// organization of the three components that follow.
|
||||
/// 1. The landing pad site information describes the range of code covered
|
||||
/// by the try. In our case it's an accumulation of the ranges covered
|
||||
/// by the invokes in the try. There is also a reference to the landing
|
||||
/// pad that handles the exception once processed. Finally an index into
|
||||
/// the actions table.
|
||||
/// 2. The action table, in our case, is composed of pairs of type ids
|
||||
/// and next action offset. Starting with the action index from the
|
||||
/// landing pad site, each type Id is checked for a match to the current
|
||||
/// exception. If it matches then the exception and type id are passed
|
||||
/// on to the landing pad. Otherwise the next action is looked up. This
|
||||
/// chain is terminated with a next action of zero. If no type id is
|
||||
/// found the frame is unwound and handling continues.
|
||||
/// 3. Type id table contains references to all the C++ typeinfo for all
|
||||
/// catches in the function. This tables is reversed indexed base 1.
|
||||
|
||||
/// SharedTypeIds - How many leading type ids two landing pads have in common.
|
||||
static unsigned SharedTypeIds(const LandingPadInfo *L,
|
||||
const LandingPadInfo *R);
|
||||
@ -119,6 +99,26 @@ protected:
|
||||
const RangeMapType &PadMap,
|
||||
const SmallVectorImpl<const LandingPadInfo *> &LPs,
|
||||
const SmallVectorImpl<unsigned> &FirstActions);
|
||||
|
||||
/// EmitExceptionTable - Emit landing pads and actions.
|
||||
///
|
||||
/// The general organization of the table is complex, but the basic concepts
|
||||
/// are easy. First there is a header which describes the location and
|
||||
/// organization of the three components that follow.
|
||||
/// 1. The landing pad site information describes the range of code covered
|
||||
/// by the try. In our case it's an accumulation of the ranges covered
|
||||
/// by the invokes in the try. There is also a reference to the landing
|
||||
/// pad that handles the exception once processed. Finally an index into
|
||||
/// the actions table.
|
||||
/// 2. The action table, in our case, is composed of pairs of type ids
|
||||
/// and next action offset. Starting with the action index from the
|
||||
/// landing pad site, each type Id is checked for a match to the current
|
||||
/// exception. If it matches then the exception and type id are passed
|
||||
/// on to the landing pad. Otherwise the next action is looked up. This
|
||||
/// chain is terminated with a next action of zero. If no type id is
|
||||
/// found the frame is unwound and handling continues.
|
||||
/// 3. Type id table contains references to all the C++ typeinfo for all
|
||||
/// catches in the function. This tables is reversed indexed base 1.
|
||||
void EmitExceptionTable();
|
||||
|
||||
public:
|
||||
|
Loading…
Reference in New Issue
Block a user