Sys.Signals module for a Variant type of signals (and a set_signal function that...
[ocaml.git] / testasmcomp / m68k.S
blob436e65e6958b5f28a090b44043962252200daae1
1 |***********************************************************************
2 |*                                                                     *
3 |*                           Objective Caml                            *
4 |*                                                                     *
5 |*            Xavier Leroy, projet Cristal, INRIA Rocquencourt         *
6 |*                                                                     *
7 |*  Copyright 1996 Institut National de Recherche en Informatique et   *
8 |*  en Automatique.  All rights reserved.  This file is distributed    *
9 |*  under the terms of the Q Public License version 1.0.               *
10 |*                                                                     *
11 |***********************************************************************
13 | $Id$
15 | call_gen_code is used with the following types:
16 |       unit -> int
17 |       int -> int
18 |       int -> double
19 |       int * int * address -> void
20 |       int * int -> void
21 |       unit -> unit
22 | Hence arg1 -> d0, arg2 -> d1, arg3 -> a0, 
23 | and we need a special case for int -> double
25         .text
26         .globl  _call_gen_code
27 _call_gen_code:
28         link    a6, #0
29         movem   d2-d7/a2-a6, a7@-
30         fmovem  fp2-fp7, a7@-
31         movel   a6@(8), a1
32         movel   a6@(12), d0
33         movel   a6@(16), d1
34         movel   a6@(20), a0
35         jsr     a1@
36         fmovem  a7@+, fp2-fp7
37         movem   a7@+, d2-d7/a2-a6
38         unlk    a6
39         rts
41         .globl  _call_gen_code_float
42 _call_gen_code_float:
43         link    a6, #0
44         moveml  d2-d7/a2-a6, a7@-
45         fmovem  fp2-fp7, a7@-
46         movel   a6@(8), a1
47         movel   a6@(12), d0
48         jsr     a1@
49         fmoved  fp0, a7@-
50         movel   a7@+, d0
51         movel   a7@+, d1
52         fmovem  a7@+, fp2-fp7
53         moveml  a7@+, d2-d7/a2-a6
54         unlk    a6
55         rts
57         .globl  _caml_c_call
58 _caml_c_call:
59         jmp     a0@