/* AE program profiling system.
   Assembly code for AE_START and AE_FLUSH_BUFFER.
   Copyright (C) 1989, 1990 by James R. Larus (larus@cs.wisc.edu)

   AE and AEC are free software; you can redistribute it and/or modify it
   under the terms of the GNU General Public License as published by the
   Free Software Foundation; either version 1, or (at your option) any
   later version.

   AE and AEC are distributed in the hope that it will be useful, but
   WITHOUT ANY WARRANTY; without even the implied warranty of
   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
   General Public License for more details.

   You should have received a copy of the GNU General Public License
   along with GNU CC; see the file COPYING.  If not, write to James R.
   Larus, Computer Sciences Department, University of Wisconsin--Madison,
   1210 West Dayton Street, Madison, WI 53706, USA or to the Free
   Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */


/* $Header: /var/home/larus/AE/AE/RCS/aecrt.s,v 2.0 90/02/09 17:20:35 larus Exp Locker: larus $ */



/* The startup routine (AE_START) initializes the world and invokes
   AE_INITIALIZE, before invoking MAIN.
   This code needs to be hand-coded.  Look at the routine "start" when using
   profiling (-p) to get the idea. */

#define AE_START_ASM



/* Flush AE buffer by writing its contents to a file and reset the
   buffer pointer.  This routine probably must be written in assembly
   language since it cannot affect ANY register visible to its caller
   (not just the callee-saved registers) since it is called at arbitrary
   points in a function.
   Hand-adapted from output of C compiler of the C version of
   AE_FLUSH_BUFFER. */

#define AE_FLUSH_BUFFER_ASM


#include "ae-machine.h"
