Changeset 4a58895 for doc/working


Ignore:
Timestamp:
Jun 1, 2017, 3:36:59 PM (7 years ago)
Author:
Andrew Beach <ajbeach@…>
Branches:
ADT, aaron-thesis, arm-eh, ast-experimental, cleanup-dtors, deferred_resn, demangler, enum, forall-pointer-decay, jacob/cs343-translation, jenkins-sandbox, master, new-ast, new-ast-unique-expr, new-env, no_list, persistent-indexer, pthread-emulation, qualifiedEnum, resolv-new, with_gc
Children:
676cc8c
Parents:
ab904dc
Message:

Added a proof of consept resumption exception handler. Has comparable speed to the existing termination handler under O2.

Location:
doc/working/exception
Files:
2 added
2 edited

Legend:

Unmodified
Added
Removed
  • doc/working/exception/impl/except.c

    rab904dc r4a58895  
    9797                                        //is way more expansive than we might like
    9898                                        //The information we have is :
    99                                         //  - The GR (???)
     99                                        //  - The GR (Series of registers)
     100                                        //    GR1=GP Global Pointer of frame ref by context
    100101                                        //  - The instruction pointer
    101102                                        //  - The instruction pointer info (???)
    102                                         //  - The CFA (???)
     103                                        //  - The CFA (Canonical Frame Address)
    103104                                        //  - The BSP (Probably the base stack pointer)
    104105
  • doc/working/exception/impl/main.c

    rab904dc r4a58895  
    3333//libcfa but there is one problem left, see the exception table
    3434//for details
     35__attribute__((noinline))
    3536void try( void (*try_block)(), void (*catch_block)() )
    3637{
     
    129130        raii_t a = { "Main dtor" };
    130131
    131         foo();
     132        for (unsigned int i = 0 ; i < 100000000 ; ++i) foo();
    132133
    133134        printf("End of program reached\n");
Note: See TracChangeset for help on using the changeset viewer.