~ubuntu-branches/debian/squeeze/ffcall/squeeze

« back to all changes in this revision

Viewing changes to ffcall/trampoline/tramp-hppa.s

  • Committer: Bazaar Package Importer
  • Author(s): Christoph Egger
  • Date: 2010-06-26 15:29:30 UTC
  • mfrom: (5.1.1 experimental)
  • Revision ID: james.westby@ubuntu.com-20100626152930-c09y01gk3szcnykn
Tags: 1.10+cvs20100619-2
Ship to unstable

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
; Trampoline for hppa CPU
2
 
 
3
 
;
4
 
; Copyright 1997 Bruno Haible, <bruno@clisp.org>
5
 
;
6
 
; This is free software distributed under the GNU General Public Licence
7
 
; described in the file COPYING. Contact the author if you don't have this
8
 
; or can't live with it. There is ABSOLUTELY NO WARRANTY, explicit or implied,
9
 
; on this software.
10
 
;
11
 
 
12
 
        .code
13
 
        .IMPORT $global$,DATA
14
 
        .IMPORT $$dyncall,MILLICODE
15
 
        .code
16
 
 
17
 
        .align 4
18
 
        .EXPORT tramp,ENTRY,PRIV_LEV=3,ARGW0=GR,ARGW1=GR
19
 
        .label tramp
20
 
        .PROC
21
 
        .CALLINFO FRAME=0,NO_CALLS
22
 
        .ENTRY
23
 
; The closure pointer is already in register %r19.
24
 
; Move <variable> into register %r20.
25
 
        ldw 0(0,%r19),%r20
26
 
; Move <data> into register %r22
27
 
        ldw 4(0,%r19),%r22
28
 
; Move <address> into register %r21.
29
 
        ldw 8(0,%r19),%r21
30
 
; Store <data> into <variable>.
31
 
        stw %r22,0(0,%r20)
32
 
; Jump to %r21.
33
 
        bb,>=,n %r21,30,tramp_2
34
 
        depi 0,31,2,%r21
35
 
        ldw 4(0,%r21),%r19
36
 
        ldw 0(0,%r21),%r21
37
 
        .label tramp_2
38
 
        ldsid (0,%r21),%r1
39
 
        mtsp %r1,%sr0
40
 
        be,n 0(%sr0,%r21)
41
 
        nop
42
 
        .EXIT
43
 
        .PROCEND