Sys.Signals module for a Variant type of signals (and a set_signal function that...
[ocaml.git] / testasmcomp / mips.s
blob9fe9f94b60a39191e16bbb5dfbe1dc6eed4c1ee3
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 .globl call_gen_code
16 .ent call_gen_code
17 call_gen_code:
18 subu $sp, $sp, 0x90
19 sd $31, 0x88($sp)
20 /* Save all callee-save registers */
21 sd $16, 0x0($sp)
22 sd $17, 0x8($sp)
23 sd $18, 0x10($sp)
24 sd $19, 0x18($sp)
25 sd $20, 0x20($sp)
26 sd $21, 0x28($sp)
27 sd $22, 0x30($sp)
28 sd $23, 0x38($sp)
29 sd $30, 0x40($sp)
30 s.d $f20, 0x48($sp)
31 s.d $f22, 0x50($sp)
32 s.d $f24, 0x58($sp)
33 s.d $f26, 0x60($sp)
34 s.d $f28, 0x68($sp)
35 s.d $f30, 0x70($sp)
36 /* Shuffle arguments */
37 move $8, $5
38 move $9, $6
39 move $10, $7
40 move $25, $4
41 jal $4
42 /* Restore registers */
43 ld $31, 0x88($sp)
44 ld $16, 0x0($sp)
45 ld $17, 0x8($sp)
46 ld $18, 0x10($sp)
47 ld $19, 0x18($sp)
48 ld $20, 0x20($sp)
49 ld $21, 0x28($sp)
50 ld $22, 0x30($sp)
51 ld $23, 0x38($sp)
52 ld $30, 0x40($sp)
53 l.d $f20, 0x48($sp)
54 l.d $f22, 0x50($sp)
55 l.d $f24, 0x58($sp)
56 l.d $f26, 0x60($sp)
57 l.d $f28, 0x68($sp)
58 l.d $f30, 0x70($sp)
59 addu $sp, $sp, 0x90
60 j $31
62 .end call_gen_code
64 /* Call a C function */
66 .globl caml_c_call
67 .ent caml_c_call
68 caml_c_call:
69 move $25, $24
70 j $24
71 .end caml_c_call