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

« back to all changes in this revision

Viewing changes to trampoline/tramp-ia64.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 ia64 CPU */
 
2
 
 
3
/*
 
4
 * Copyright 2001 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
        .text
 
13
        .align 16
 
14
        .global tramp#
 
15
        .proc tramp#
 
16
tramp:
 
17
        /* The closure pointer is already in register r1. */
 
18
        ld8 r14 = [r1]          /* Move <address> into register r14. */
 
19
        adds r15 = 8, r1
 
20
        adds r16 = 16, r1
 
21
        ;;
 
22
        /* Jump to r14. */
 
23
        ld8 r18 = [r14]
 
24
        ld8 r15 = [r15]         /* Move <variable> into register r15. */
 
25
        adds r17 = 8, r14
 
26
        ;;
 
27
        ld8 r16 = [r16]         /* Move <data> into register r16. */
 
28
        ld8 r1 = [r17]
 
29
        mov b6 = r18
 
30
        ;;
 
31
        st8 [r15] = r16         /* Store <data> into <variable>. */
 
32
        br b6
 
33
        ;;
 
34
        .endp tramp#