;  C link-time library definitions for the GNU regular expression library.
;  Edwin Hoogerbeets 18/07/89
;
;  This file may be copied and distributed under the GNU Public
;  Licence. See the comment at the top of regex.c for details.
;
;  Adapted from Elib by Jim Mackraz, mklib by Edwin Hoogerbeets, and the
;  GNU regular expression package by the Free Software Foundation.
;
        include 'regex.i'

store   macro
        movem.l d2-d7/a2-a5,safekeep
        endm

retrieve macro
        movem.l safekeep,d2-d7/a2-a5
        endm

        dseg

safekeep:
        dcb.l 14     ; reserve some space for temporary register storage


        ; --- xdef for application
        public  _RegexBase
_RegexBase:
        ds.l 1

        cseg

        ; --- xdef for application

        public _re_initialize_buffer
        public _re_terminate_buffer
        public _re_compile_pattern
        public _re_compile_fastmap
        public _re_search
        public _re_search_2
        public _re_match
        public _re_match_2

_re_initialize_buffer:
        move.l  4(sp),d0
        move.l  8(sp),d1
        move.l  _RegexBase,a6
        jmp     _LVOre_initialize_buffer(a6)

_re_terminate_buffer:
        move.l  4(sp),d0
        move.l  _RegexBase,a6
        jmp     _LVOre_terminate_buffer(a6)

_re_compile_pattern:
        move.l  4(sp),d0
        move.l  8(sp),d1
        move.l  12(sp),a0
        move.l  16(sp),a1
        move.l  _RegexBase,a6
        jmp     _LVOre_compile_pattern(a6)

_re_compile_fastmap:
        move.l  4(sp),d0
        move.l  _RegexBase,a6
        jmp     _LVOre_compile_fastmap(a6)

_re_search:
        store
        move.l  4(sp),d0
        move.l  8(sp),d1
        move.l  12(sp),a0
        move.l  16(sp),a1
        move.l  20(sp),d2
        move.l  24(sp),d3
        move.l  _RegexBase,a6
        jsr     _LVOre_search(a6)
        retrieve
        rts

_re_search_2:
        store
        move.l  4(sp),d0
        move.l  8(sp),d1
        move.l  12(sp),a0
        move.l  16(sp),a1
        move.l  20(sp),d2
        move.l  24(sp),d3
        move.l  28(sp),d4
        move.l  32(sp),d5
        move.l  36(sp),d6
        move.l  _RegexBase,a6
        jsr     _LVOre_search_2(a6)
        retrieve
        rts

_re_match:
        store
        move.l  4(sp),d0
        move.l  8(sp),d1
        move.l  12(sp),a0
        move.l  16(sp),a1
        move.l  20(sp),d2
        move.l  _RegexBase,a6
        jsr     _LVOre_match(a6)
        retrieve
        rts

_re_match_2:
        store
        move.l  4(sp),d0
        move.l  8(sp),d1
        move.l  12(sp),a0
        move.l  16(sp),a1
        move.l  20(sp),d2
        move.l  24(sp),d3
        move.l  28(sp),d4
        move.l  32(sp),d5
        move.l  _RegexBase,a6
        jsr     _LVOre_match_2(a6)
        retrieve
        rts

        end



