1 ;*********************************************************************
5 ;* Xavier Leroy, projet Cristal, INRIA Rocquencourt *
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. *
11 ;*********************************************************************
14 ; Must be preprocessed by cpp
18 #define CODESPACE .code
20 #define EXPORT_CODE(x) .export x, entry, priv_lev=3
21 #define STARTPROC .proc ! .callinfo frame=0, no_calls ! .entry
22 #define ENDPROC .exit ! .procend
27 #define CODESPACE .text
29 #define EXPORT_CODE(x) .globl x
36 .subspa $DATA$,quad=1,align=8,access=31
37 .subspa $BSS$,quad=1,align=8,access=31,zero,sort=82
39 .subspa $LIT$,quad=0,align=8,access=44
40 .subspa $CODE$,quad=0,align=8,access=44,code_only
41 .import $global$, data
42 .import $$dyncall, millicode
47 EXPORT_CODE(G(call_gen_code))
52 ; Save the callee-save registers
70 fstds,ma %fr12, -8(%r1)
71 fstds,ma %fr13, -8(%r1)
72 fstds,ma %fr14, -8(%r1)
73 fstds,ma %fr15, -8(%r1)
74 fstds,ma %fr16, -8(%r1)
75 fstds,ma %fr17, -8(%r1)
76 fstds,ma %fr18, -8(%r1)
77 fstds,ma %fr19, -8(%r1)
78 fstds,ma %fr20, -8(%r1)
79 fstds,ma %fr21, -8(%r1)
80 fstds,ma %fr22, -8(%r1)
81 fstds,ma %fr23, -8(%r1)
82 fstds,ma %fr24, -8(%r1)
83 fstds,ma %fr25, -8(%r1)
84 fstds,ma %fr26, -8(%r1)
85 fstds,ma %fr27, -8(%r1)
86 fstds,ma %fr28, -8(%r1)
87 fstds,ma %fr29, -8(%r1)
88 fstds,ma %fr30, -8(%r1)
89 fstds,ma %fr31, -8(%r1)
91 ; Shuffle the arguments and call
104 ; Shuffle the results
106 ; Restore the callee-save registers
115 ldws,ma -4(%r1), %r10
116 ldws,ma -4(%r1), %r11
117 ldws,ma -4(%r1), %r12
118 ldws,ma -4(%r1), %r13
119 ldws,ma -4(%r1), %r14
120 ldws,ma -4(%r1), %r15
121 ldws,ma -4(%r1), %r16
122 ldws,ma -4(%r1), %r17
123 ldws,ma -4(%r1), %r18
124 fldds,ma -8(%r1), %fr12
125 fldds,ma -8(%r1), %fr13
126 fldds,ma -8(%r1), %fr14
127 fldds,ma -8(%r1), %fr15
128 fldds,ma -8(%r1), %fr16
129 fldds,ma -8(%r1), %fr17
130 fldds,ma -8(%r1), %fr18
131 fldds,ma -8(%r1), %fr19
132 fldds,ma -8(%r1), %fr20
133 fldds,ma -8(%r1), %fr21
134 fldds,ma -8(%r1), %fr22
135 fldds,ma -8(%r1), %fr23
136 fldds,ma -8(%r1), %fr24
137 fldds,ma -8(%r1), %fr25
138 fldds,ma -8(%r1), %fr26
139 fldds,ma -8(%r1), %fr27
140 fldds,ma -8(%r1), %fr28
141 fldds,ma -8(%r1), %fr29
142 fldds,ma -8(%r1), %fr30
143 fldds,ma -8(%r1), %fr31
152 EXPORT_CODE(caml_c_call)