~ubuntu-branches/ubuntu/vivid/nettle/vivid-proposed

« back to all changes in this revision

Viewing changes to x86_64/machine.m4

  • Committer: Package Import Robot
  • Author(s): Magnus Holmgren
  • Date: 2013-05-04 19:50:28 UTC
  • mfrom: (1.4.6) (3.1.11 experimental)
  • mto: This revision was merged to the branch mainline in revision 14.
  • Revision ID: package-import@ubuntu.com-20130504195028-fp6c9fw1tsm5scwa
Tags: 2.7-1
* New upstream release (Closes: #706081).
* Include watch file improvements from Bart Martens <bartm@debian.org>
  via the QA system.

Show diffs side-by-side

added added

removed removed

Lines of Context:
2
2
C Expands to 4*i, or to the empty string if i is zero
3
3
define(<OFFSET>, <ifelse($1,0,,eval(4*$1))>)
4
4
 
 
5
C OFFSET64(i)
 
6
C Expands to 8*i, or to the empty string if i is zero
 
7
define(<OFFSET64>, <ifelse($1,0,,eval(8*$1))>)
 
8
 
5
9
dnl LREG(reg) gives the 8-bit register corresponding to the given 64-bit register.
6
10
define(<LREG>,<ifelse(
7
11
        $1, %rax, %al,
26
30
        $1, %rcx, %ch,
27
31
        $1, %rdx, %dh)>)dnl
28
32
 
 
33
define(<WREG>,<ifelse(
 
34
        $1, %rax, %ax,
 
35
        $1, %rbx, %bx,
 
36
        $1, %rcx, %cx,
 
37
        $1, %rdx, %dx,
 
38
        $1, %rsi, %si,
 
39
        $1, %rdi, %di,
 
40
        $1, %rbp, %bp,
 
41
        $1, %r8, %r8w,
 
42
        $1, %r9, %r9w,
 
43
        $1, %r10, %r10w,
 
44
        $1, %r11, %r11w,
 
45
        $1, %r12, %r12w,
 
46
        $1, %r13, %r13w,
 
47
        $1, %r14, %r14w,
 
48
        $1, %r15, %r15w)>)dnl
 
49
 
29
50
define(<XREG>,<ifelse(
30
51
        $1, %rax, %eax,
31
52
        $1, %rbx, %ebx,
42
63
        $1, %r13, %r13d,
43
64
        $1, %r14, %r14d,
44
65
        $1, %r15, %r15d)>)dnl
 
66
 
 
67
dnl W64_ENTRY(nargs, xmm_used)
 
68
define(<W64_ENTRY>, <
 
69
  changequote([,])dnl
 
70
  ifelse(<<<<<<<<<<<<<<<< ignored; only for balancing)
 
71
  ifelse(W64_ABI,yes,[
 
72
    ifelse(eval($2 > 6), 1, [
 
73
      sub       [$]eval(8 + 16*($2 - 6)), %rsp
 
74
      movdqu    %xmm6, 0(%rsp)
 
75
    ])
 
76
    ifelse(eval($2 > 7), 1, [
 
77
      movdqu    %xmm7, 16(%rsp)
 
78
    ])
 
79
    ifelse(eval($2 > 8), 1, [
 
80
      movdqu    %xmm8, 32(%rsp)
 
81
    ])
 
82
    ifelse(eval($2 > 9), 1, [
 
83
      movdqu    %xmm9, 48(%rsp)
 
84
    ])
 
85
    ifelse(eval($2 > 10), 1, [
 
86
      movdqu    %xmm10, 64(%rsp)
 
87
    ])
 
88
    ifelse(eval($2 > 11), 1, [
 
89
      movdqu    %xmm11, 80(%rsp)
 
90
    ])
 
91
    ifelse(eval($2 > 12), 1, [
 
92
      movdqu    %xmm12, 96(%rsp)
 
93
    ])
 
94
    ifelse(eval($2 > 13), 1, [
 
95
      movdqu    %xmm13, 112(%rsp)
 
96
    ])
 
97
    ifelse(eval($2 > 14), 1, [
 
98
      movdqu    %xmm14, 128(%rsp)
 
99
    ])
 
100
    ifelse(eval($2 > 15), 1, [
 
101
      movdqu    %xmm15, 144(%rsp)
 
102
    ])
 
103
    ifelse(eval($1 >= 1), 1, [
 
104
      push      %rdi
 
105
      mov       %rcx, %rdi
 
106
    ])
 
107
    ifelse(eval($1 >= 2), 1, [
 
108
      push      %rsi
 
109
      mov       %rdx, %rsi
 
110
    ])
 
111
    ifelse(eval($1 >= 3), 1, [
 
112
      mov       %r8, %rdx
 
113
    ])
 
114
    ifelse(eval($1 >= 4), 1, [
 
115
      mov       %r9, %rcx
 
116
    ])
 
117
    ifelse(eval($1 >= 5), 1, [
 
118
      ifelse(eval($2 > 6), 1, [
 
119
        mov     eval(8 + 16*($2 - 6) + 56)(%rsp), %r8
 
120
      ], [
 
121
        mov     56(%rsp), %r8
 
122
      ])
 
123
    ])
 
124
  ])
 
125
  changequote(<,>)dnl
 
126
>)
 
127
 
 
128
dnl W64_EXIT(nargs, xmm_used)
 
129
define(<W64_EXIT>, <
 
130
  changequote([,])dnl
 
131
  ifelse(<<<<<<<<<<<< ignored; only for balancing)
 
132
  ifelse(W64_ABI,yes,[
 
133
    ifelse(eval($1 >= 2), 1, [
 
134
      pop       %rsi
 
135
    ])
 
136
    ifelse(eval($1 >= 1), 1, [
 
137
      pop       %rdi
 
138
    ])
 
139
    ifelse(eval($2 > 15), 1, [
 
140
      movdqu    144(%rsp), %xmm15
 
141
    ])
 
142
    ifelse(eval($2 > 14), 1, [
 
143
      movdqu    128(%rsp), %xmm14
 
144
    ])
 
145
    ifelse(eval($2 > 13), 1, [
 
146
      movdqu    112(%rsp), %xmm13
 
147
    ])
 
148
    ifelse(eval($2 > 12), 1, [
 
149
      movdqu    96(%rsp), %xmm12
 
150
    ])
 
151
    ifelse(eval($2 > 11), 1, [
 
152
      movdqu    80(%rsp), %xmm11
 
153
    ])
 
154
    ifelse(eval($2 > 10), 1, [
 
155
      movdqu    64(%rsp), %xmm10
 
156
    ])
 
157
    ifelse(eval($2 > 9), 1, [
 
158
      movdqu    48(%rsp), %xmm9
 
159
    ])
 
160
    ifelse(eval($2 > 8), 1, [
 
161
      movdqu    32(%rsp), %xmm8
 
162
    ])
 
163
    ifelse(eval($2 > 7), 1, [
 
164
      movdqu    16(%rsp), %xmm7
 
165
    ])
 
166
    ifelse(eval($2 > 6), 1, [
 
167
      movdqu    0(%rsp), %xmm6
 
168
      add       [$]eval(8 + 16*($2 - 6)), %rsp
 
169
    ])
 
170
  ])
 
171
  changequote(<,>)dnl
 
172
>)