Changeset 67ca73e for libcfa


Ignore:
Timestamp:
Aug 20, 2020, 11:40:37 PM (4 years ago)
Author:
Peter A. Buhr <pabuhr@…>
Branches:
ADT, arm-eh, ast-experimental, enum, forall-pointer-decay, jacob/cs343-translation, master, new-ast-unique-expr, pthread-emulation, qualifiedEnum
Children:
e67a82d
Parents:
88cafe7
Message:

temporary exception hack for ARM 64-bit

File:
1 edited

Legend:

Unmodified
Added
Removed
  • libcfa/src/exception.c

    r88cafe7 r67ca73e  
    99// Author           : Andrew Beach
    1010// Created On       : Mon Jun 26 15:13:00 2017
    11 // Last Modified By : Andrew Beach
    12 // Last Modified On : Thr May 21 12:18:00 2020
    13 // Update Count     : 20
     11// Last Modified By : Peter A. Buhr
     12// Last Modified On : Sat Aug 15 07:17:19 2020
     13// Update Count     : 26
    1414//
    1515
     
    2121// Implementation of the secret header is hardware dependent.
    2222#if !( defined( __x86_64 ) || defined( __i386 ) )
    23 #error Exception Handling: No known architecture detected.
     23#elif defined( __ARM_ARCH )
     24#warning FIX ME: check if anything needed for ARM
     25#else
     26#warning Exception Handling: No known architecture detected.
    2427#endif
    2528
     
    297300        abort();
    298301}
    299 
     302#if 0
    300303// This is our personality routine. For every stack frame annotated with
    301304// ".cfi_personality 0x3,__gcfa_personality_v0" this function will be called twice when unwinding.
     
    409412                                cur_ptr = read_uleb128(cur_ptr, &imatcher);
    410413
     414                                _Unwind_Word match_pos =
    411415#                               if defined( __x86_64 )
    412                                 _Unwind_Word match_pos = _Unwind_GetCFA(unwind_context) + 8;
     416                                    _Unwind_GetCFA(unwind_context) + 8;
    413417#                               elif defined( __i386 )
    414                                 _Unwind_Word match_pos = _Unwind_GetCFA(unwind_context) + 24;
     418                                    _Unwind_GetCFA(unwind_context) + 24;
     419#                               elif defined( __ARM_ARCH )
     420#                                   warning FIX ME: check if anything needed for ARM
     421                                    42;
    415422#                               endif
    416423                                int (*matcher)(exception_t *) = *(int(**)(exception_t *))match_pos;
     
    602609
    603610#pragma GCC pop_options
     611#endif // 0
Note: See TracChangeset for help on using the changeset viewer.