Changeset 49a980b for libcfa


Ignore:
Timestamp:
Aug 31, 2020, 5:23:49 PM (5 years ago)
Author:
m3zulfiq <m3zulfiq@…>
Branches:
ADT, arm-eh, ast-experimental, enum, forall-pointer-decay, jacob/cs343-translation, master, new-ast-unique-expr, pthread-emulation, qualifiedEnum
Children:
d3aa64f1
Parents:
191a190 (diff), 942453a (diff)
Note: this is a merge changeset, the changes displayed below correspond to the merge itself.
Use the (diff) links above to see all the changes relative to each parent.
Message:

Merge branch 'master' of plg.uwaterloo.ca:software/cfa/cfa-cc

Location:
libcfa
Files:
1 added
1 deleted
7 edited

Legend:

Unmodified
Added
Removed
  • libcfa/prelude/Makefile.am

    r191a190 r49a980b  
    2222cfalibdir = ${CFA_LIBDIR}
    2323cfalib_DATA = gcc-builtins.cf builtins.cf extras.cf prelude.cfa bootloader.c defines.hfa
     24
     25EXTRA_DIST = bootloader.cf builtins.c builtins.def extras.c extras.regx extras.regx2 prelude-gen.cc prototypes.awk prototypes.c prototypes.sed sync-builtins.cf
    2426
    2527CC = @LOCAL_CFACC@
  • libcfa/src/Makefile.am

    r191a190 r49a980b  
    3131# AM_CFAFLAGS for only cfa source
    3232# use -no-include-stdhdr to prevent rebuild cycles
    33 # The built sources must not depend on the installed headers
    34 AM_CFAFLAGS = -quiet -cfalib -I$(srcdir)/stdhdr $(if $(findstring ${gdbwaittarget}, ${@}), -XCFA --gdb) @CONFIG_CFAFLAGS@
     33# The built sources must not depend on the installed inst_headers_src
     34AM_CFAFLAGS = -quiet -cfalib -I$(srcdir)/stdhdr -I$(srcdir)/concurrency $(if $(findstring ${gdbwaittarget}, ${@}), -XCFA --gdb) @CONFIG_CFAFLAGS@
    3535AM_CFLAGS = -g -Wall -Wno-unused-function -fPIC -fexceptions -pthread @ARCH_FLAGS@ @CONFIG_CFLAGS@
    3636AM_CCASFLAGS = -g -Wall -Wno-unused-function @ARCH_FLAGS@ @CONFIG_CFLAGS@
     
    3939#----------------------------------------------------------------------------------------------------------------
    4040if BUILDLIB
    41 headers_nosrc = bitmanip.hfa exception.hfa math.hfa gmp.hfa time_t.hfa clock.hfa \
    42                 bits/align.hfa bits/containers.hfa bits/defs.hfa bits/debug.hfa bits/locks.hfa \
    43                 containers/list.hfa containers/stackLockFree.hfa concurrency/iofwd.hfa
     41inst_headers_nosrc = \
     42        bitmanip.hfa \
     43        clock.hfa \
     44        exception.hfa \
     45        gmp.hfa \
     46        math.hfa \
     47        time_t.hfa \
     48        bits/align.hfa \
     49        bits/containers.hfa \
     50        bits/debug.hfa \
     51        bits/defs.hfa \
     52        bits/locks.hfa \
     53        concurrency/iofwd.hfa \
     54        containers/list.hfa \
     55        containers/stackLockFree.hfa
    4456
    45 headers = common.hfa fstream.hfa heap.hfa iostream.hfa iterator.hfa limits.hfa rational.hfa \
    46                 time.hfa stdlib.hfa parseargs.hfa \
    47                 containers/maybe.hfa containers/pair.hfa containers/result.hfa containers/vector.hfa
     57inst_headers_src = \
     58        common.hfa \
     59        fstream.hfa \
     60        heap.hfa \
     61        iostream.hfa \
     62        iterator.hfa \
     63        limits.hfa \
     64        parseargs.hfa \
     65        rational.hfa \
     66        stdlib.hfa \
     67        time.hfa \
     68        containers/maybe.hfa \
     69        containers/pair.hfa \
     70        containers/result.hfa \
     71        containers/vector.hfa
    4872
    49 libsrc = startup.cfa interpose.cfa bits/debug.cfa assert.cfa exception.c virtual.c ${headers:.hfa=.cfa}
     73libsrc = ${inst_headers_src} ${inst_headers_src:.hfa=.cfa} \
     74        assert.cfa \
     75        bits/algorithm.hfa \
     76        bits/debug.cfa \
     77        exception.c \
     78        exception.h \
     79        interpose.cfa \
     80        lsda.h \
     81        startup.cfa \
     82        startup.hfa \
     83        virtual.c \
     84        virtual.h
    5085
    5186# not all platforms support concurrency, add option do disable it
    52 thread_headers_nosrc = bits/random.hfa concurrency/invoke.h concurrency/kernel/fwd.hfa
     87inst_thread_headers_nosrc = \
     88        bits/random.hfa \
     89        concurrency/invoke.h \
     90        concurrency/kernel/fwd.hfa
    5391
    54 thread_headers = concurrency/coroutine.hfa concurrency/thread.hfa concurrency/kernel.hfa \
    55                 concurrency/monitor.hfa concurrency/mutex.hfa concurrency/exception.hfa
     92inst_thread_headers_src = \
     93        concurrency/coroutine.hfa \
     94        concurrency/exception.hfa \
     95        concurrency/kernel.hfa \
     96        concurrency/monitor.hfa \
     97        concurrency/mutex.hfa \
     98        concurrency/thread.hfa
    5699
    57 thread_libsrc = concurrency/CtxSwitch-@ARCHITECTURE@.S concurrency/alarm.cfa \
    58                 concurrency/invoke.c concurrency/io.cfa concurrency/iocall.cfa \
    59                 concurrency/io/setup.cfa \
    60                 concurrency/kernel/startup.cfa concurrency/preemption.cfa \
    61                 concurrency/ready_queue.cfa concurrency/stats.cfa \
    62                 ${thread_headers:.hfa=.cfa}
     100thread_libsrc = ${inst_thread_headers_src} ${inst_thread_headers_src:.hfa=.cfa} \
     101        bits/signal.hfa \
     102        concurrency/alarm.cfa \
     103        concurrency/alarm.hfa \
     104        concurrency/CtxSwitch-@ARCHITECTURE@.S \
     105        concurrency/invoke.c \
     106        concurrency/io.cfa \
     107        concurrency/io/setup.cfa \
     108        concurrency/io/types.hfa \
     109        concurrency/iocall.cfa \
     110        concurrency/iofwd.hfa \
     111        concurrency/kernel_private.hfa \
     112        concurrency/kernel/startup.cfa \
     113        concurrency/preemption.cfa \
     114        concurrency/preemption.hfa \
     115        concurrency/ready_queue.cfa \
     116        concurrency/ready_subqueue.hfa \
     117        concurrency/snzi.hfa \
     118        concurrency/stats.cfa \
     119        concurrency/stats.hfa \
     120        concurrency/stats.hfa
     121
    63122else
    64 headers =
    65 thread_headers =
    66 headers_nosrc =
    67 thread_headers_nosrc =
     123inst_headers_src =
     124inst_thread_headers_src =
     125inst_headers_nosrc =
     126inst_thread_headers_nosrc =
    68127libsrc =
    69128endif
     
    115174
    116175#----------------------------------------------------------------------------------------------------------------
    117 libcfa_la_SOURCES = prelude.cfa ${libsrc}
     176libcfa_la_SOURCES = ${libsrc}
     177nodist_libcfa_la_SOURCES = prelude.cfa
    118178libcfa_la_LDFLAGS = -version-info @CFA_VERSION@
    119179
     
    124184
    125185cfa_includedir = $(CFA_INCDIR)
    126 nobase_cfa_include_HEADERS = ${stdhdr} ${headers} ${headers_nosrc} ${thread_headers} ${thread_headers_nosrc}
     186nobase_cfa_include_HEADERS = ${stdhdr} ${inst_headers_src} ${inst_headers_nosrc} ${inst_thread_headers_src} ${inst_thread_headers_nosrc}
     187EXTRA_DIST = stdhdr
    127188
    128189#----------------------------------------------------------------------------------------------------------------
  • libcfa/src/bits/defs.hfa

    r191a190 r49a980b  
    1010// Created On       : Thu Nov  9 13:24:10 2017
    1111// Last Modified By : Peter A. Buhr
    12 // Last Modified On : Thu Aug 13 22:00:23 2020
    13 // Update Count     : 19
     12// Last Modified On : Wed Aug 26 16:22:32 2020
     13// Update Count     : 20
    1414//
    1515
     
    4949
    5050static inline long long int rdtscl(void) {
    51         #if defined( __aarch64__ )
     51        #if defined( __i386 ) || defined( __x86_64 )
     52        unsigned int lo, hi;
     53        __asm__ __volatile__ ("rdtsc" : "=a"(lo), "=d"(hi));
     54        return ( (unsigned long long)lo)|( ((unsigned long long)hi)<<32 );
     55        #elif defined( __aarch64__ ) || defined( __arm__ )
    5256        // https://github.com/google/benchmark/blob/v1.1.0/src/cycleclock.h#L116
    5357        long long int virtual_timer_value;
     
    5559        return virtual_timer_value;
    5660        #else
    57         unsigned int lo, hi;
    58         __asm__ __volatile__ ("rdtsc" : "=a"(lo), "=d"(hi));
    59         return ( (unsigned long long)lo)|( ((unsigned long long)hi)<<32 );
     61                #error unsupported hardware architecture
    6062        #endif // __ARM_ARCH
    6163}
  • libcfa/src/concurrency/CtxSwitch-arm64.S

    r191a190 r49a980b  
    22// Cforall Version 1.0.0 Copyright (C) 2016 University of Waterloo
    33//
    4 // CtxSwitch-arm.S --
     4// CtxSwitch-arm64.S --
    55//
    66// Author           : Peter A. Buhr
    77// Created On       : Sun Aug 16 07:50:13 2020
    88// Last Modified By : Peter A. Buhr
    9 // Last Modified On : Thu Aug 20 18:43:51 2020
    10 // Update Count     : 24
     9// Last Modified On : Wed Aug 26 16:24:59 2020
     10// Update Count     : 25
    1111//
    1212
     
    2626#define SAVE            20 * 8
    2727
    28         .file "CtxSwitch-arm.S"
     28        .file "CtxSwitch-arm64.S"
    2929        .text
    3030        .align 2
    3131        .global __cfactx_switch
    32         .type __cfactx_switch, @function
     32        .type __cfactx_switch, %function
    3333__cfactx_switch:
    3434
     
    9191        .align 2
    9292        .global __cfactx_invoke_stub
    93         .type __cfactx_invoke_stub, @function
     93        .type __cfactx_invoke_stub, %function
    9494__cfactx_invoke_stub:
    9595        mov x0, x19                                                     // load main as parameter 0
  • libcfa/src/concurrency/kernel.cfa

    r191a190 r49a980b  
    1010// Created On       : Tue Jan 17 12:27:26 2017
    1111// Last Modified By : Peter A. Buhr
    12 // Last Modified On : Fri Aug 14 15:23:00 2020
    13 // Update Count     : 69
     12// Last Modified On : Mon Aug 31 07:08:20 2020
     13// Update Count     : 71
    1414//
    1515
     
    7474                )
    7575
    76 #elif defined( __ARM_ARCH )
     76#elif defined( __arm__ )
     77        #define __x87_store
     78        #define __x87_load
     79
     80#elif defined( __aarch64__ )
    7781        #define __x87_store              \
    7882                uint32_t __fpcntl[2];    \
     
    9397
    9498#else
    95         #error unknown hardware architecture
     99        #error unsupported hardware architecture
    96100#endif
    97101
  • libcfa/src/concurrency/preemption.cfa

    r191a190 r49a980b  
    1010// Created On       : Mon Jun 5 14:20:42 2017
    1111// Last Modified By : Peter A. Buhr
    12 // Last Modified On : Fri Aug 21 13:45:32 2020
    13 // Update Count     : 52
     12// Last Modified On : Wed Aug 26 16:46:03 2020
     13// Update Count     : 53
    1414//
    1515
     
    5656#elif defined( __x86_64 )
    5757#define CFA_REG_IP gregs[REG_RIP]
    58 #elif defined( __ARM_ARCH )
     58#elif defined( __arm__ )
     59#define CFA_REG_IP arm_pc
     60#elif defined( __aarch64__ )
    5961#define CFA_REG_IP pc
    6062#else
    61 #error unknown hardware architecture
     63#error unsupported hardware architecture
    6264#endif
    6365
  • libcfa/src/exception.c

    r191a190 r49a980b  
    1010// Created On       : Mon Jun 26 15:13:00 2017
    1111// Last Modified By : Peter A. Buhr
    12 // Last Modified On : Fri Aug 21 11:27:56 2020
    13 // Update Count     : 29
     12// Last Modified On : Sat Aug 29 15:52:22 2020
     13// Update Count     : 34
    1414//
    1515
     
    1818
    1919#include "exception.h"
    20 
    21 // Implementation of the secret header is hardware dependent.
    22 #if defined( __x86_64 ) || defined( __i386 )
    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.
    27 #endif
    2820
    2921#include <stdlib.h>
     
    3426#include "stdhdr/assert.h"
    3527
    36 // FIX ME: temporary hack to keep ARM build working
     28#if defined( __ARM_ARCH )
     29#warning FIX ME: temporary hack to keep ARM build working
    3730#ifndef _URC_FATAL_PHASE1_ERROR
    3831#define _URC_FATAL_PHASE1_ERROR 3
     
    4134#define _URC_FATAL_PHASE2_ERROR 2
    4235#endif // ! _URC_FATAL_PHASE2_ERROR
     36#endif // __ARM_ARCH
    4337
    4438#include "lsda.h"
     
    626620
    627621#pragma GCC pop_options
     622
     623#elif defined( __ARM_ARCH )
     624_Unwind_Reason_Code __gcfa_personality_v0(
     625                int version,
     626                _Unwind_Action actions,
     627                unsigned long long exception_class,
     628                struct _Unwind_Exception * unwind_exception,
     629                struct _Unwind_Context * unwind_context) {
     630        return _URC_CONTINUE_UNWIND;
     631}
     632
     633__attribute__((noinline))
     634void __cfaehm_try_terminate(void (*try_block)(),
     635                void (*catch_block)(int index, exception_t * except),
     636                __attribute__((unused)) int (*match_block)(exception_t * except)) {
     637}
     638#else
     639        #error unsupported hardware architecture
    628640#endif // __x86_64 || __i386
Note: See TracChangeset for help on using the changeset viewer.