unpack_and_interleave.py (6533:2977e2e2dc27) unpack_and_interleave.py (6545:9c68aea7b1e6)
1# Copyright (c) 2007 The Hewlett-Packard Development Company
2# All rights reserved.
3#
4# Redistribution and use of this software in source and binary forms,
5# with or without modification, are permitted provided that the
6# following conditions are met:
7#
8# The software must be used only for Non-Commercial Use which means any

--- 41 unchanged lines hidden (view full) ---

50# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
51# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
52# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
53#
54# Authors: Gabe Black
55
56microcode = '''
57def macroop PUNPCKLBW_XMM_XMM {
1# Copyright (c) 2007 The Hewlett-Packard Development Company
2# All rights reserved.
3#
4# Redistribution and use of this software in source and binary forms,
5# with or without modification, are permitted provided that the
6# following conditions are met:
7#
8# The software must be used only for Non-Commercial Use which means any

--- 41 unchanged lines hidden (view full) ---

50# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
51# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
52# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
53#
54# Authors: Gabe Black
55
56microcode = '''
57def macroop PUNPCKLBW_XMM_XMM {
58 unpack xmmh, xmml, xmmlm, sel=1, size=1
59 unpack xmml, xmml, xmmlm, sel=0, size=1
58 unpack xmmh, xmml, xmmlm, ext=1, size=1
59 unpack xmml, xmml, xmmlm, ext=0, size=1
60};
61
62def macroop PUNPCKLBW_XMM_M {
63 ldfp ufp1, seg, sib, disp, dataSize=8
60};
61
62def macroop PUNPCKLBW_XMM_M {
63 ldfp ufp1, seg, sib, disp, dataSize=8
64 unpack xmmh, xmml, ufp1, sel=1, size=1
65 unpack xmml, xmml, ufp1, sel=0, size=1
64 unpack xmmh, xmml, ufp1, ext=1, size=1
65 unpack xmml, xmml, ufp1, ext=0, size=1
66};
67
68def macroop PUNPCKLBW_XMM_P {
69 rdip t7
70 ldfp ufp1, seg, riprel, disp, dataSize=8
66};
67
68def macroop PUNPCKLBW_XMM_P {
69 rdip t7
70 ldfp ufp1, seg, riprel, disp, dataSize=8
71 unpack xmmh, xmml, ufp1, sel=1, size=1
72 unpack xmml, xmml, ufp1, sel=0, size=1
71 unpack xmmh, xmml, ufp1, ext=1, size=1
72 unpack xmml, xmml, ufp1, ext=0, size=1
73};
74
75def macroop PUNPCKLWD_XMM_XMM {
73};
74
75def macroop PUNPCKLWD_XMM_XMM {
76 unpack xmmh, xmml, xmmlm, sel=1, size=2
77 unpack xmml, xmml, xmmlm, sel=0, size=2
76 unpack xmmh, xmml, xmmlm, ext=1, size=2
77 unpack xmml, xmml, xmmlm, ext=0, size=2
78};
79
80def macroop PUNPCKLWD_XMM_M {
81 ldfp ufp1, seg, sib, disp, dataSize=8
78};
79
80def macroop PUNPCKLWD_XMM_M {
81 ldfp ufp1, seg, sib, disp, dataSize=8
82 unpack xmmh, xmml, ufp1, sel=1, size=2
83 unpack xmml, xmml, ufp1, sel=0, size=2
82 unpack xmmh, xmml, ufp1, ext=1, size=2
83 unpack xmml, xmml, ufp1, ext=0, size=2
84};
85
86def macroop PUNPCKLWD_XMM_P {
87 rdip t7
88 ldfp ufp1, seg, riprel, disp, dataSize=8
84};
85
86def macroop PUNPCKLWD_XMM_P {
87 rdip t7
88 ldfp ufp1, seg, riprel, disp, dataSize=8
89 unpack xmmh, xmml, ufp1, sel=1, size=2
90 unpack xmml, xmml, ufp1, sel=0, size=2
89 unpack xmmh, xmml, ufp1, ext=1, size=2
90 unpack xmml, xmml, ufp1, ext=0, size=2
91};
92
93def macroop PUNPCKLDQ_XMM_XMM {
91};
92
93def macroop PUNPCKLDQ_XMM_XMM {
94 unpack xmmh, xmml, xmmlm, sel=1, size=4
95 unpack xmml, xmml, xmmlm, sel=0, size=4
94 unpack xmmh, xmml, xmmlm, ext=1, size=4
95 unpack xmml, xmml, xmmlm, ext=0, size=4
96};
97
98def macroop PUNPCKLDQ_XMM_M {
99 ldfp ufp1, seg, sib, disp, dataSize=8
96};
97
98def macroop PUNPCKLDQ_XMM_M {
99 ldfp ufp1, seg, sib, disp, dataSize=8
100 unpack xmmh, xmml, ufp1, sel=1, size=4
101 unpack xmml, xmml, ufp1, sel=0, size=4
100 unpack xmmh, xmml, ufp1, ext=1, size=4
101 unpack xmml, xmml, ufp1, ext=0, size=4
102};
103
104def macroop PUNPCKLDQ_XMM_P {
105 rdip t7
106 ldfp ufp1, seg, riprel, disp, dataSize=8
102};
103
104def macroop PUNPCKLDQ_XMM_P {
105 rdip t7
106 ldfp ufp1, seg, riprel, disp, dataSize=8
107 unpack xmmh, xmml, ufp1, sel=1, size=4
108 unpack xmml, xmml, ufp1, sel=0, size=4
107 unpack xmmh, xmml, ufp1, ext=1, size=4
108 unpack xmml, xmml, ufp1, ext=0, size=4
109};
110
111def macroop PUNPCKHBW_XMM_XMM {
109};
110
111def macroop PUNPCKHBW_XMM_XMM {
112 unpack xmml, xmmh, xmmhm, sel=0, size=1
113 unpack xmmh, xmmh, xmmhm, sel=1, size=1
112 unpack xmml, xmmh, xmmhm, ext=0, size=1
113 unpack xmmh, xmmh, xmmhm, ext=1, size=1
114};
115
116def macroop PUNPCKHBW_XMM_M {
117 lea t1, seg, sib, disp, dataSize=asz
118 ldfp ufp1, seg, [1, t0, t1], 8, dataSize=8
114};
115
116def macroop PUNPCKHBW_XMM_M {
117 lea t1, seg, sib, disp, dataSize=asz
118 ldfp ufp1, seg, [1, t0, t1], 8, dataSize=8
119 unpack xmml, xmmh, ufp1, sel=0, size=1
120 unpack xmmh, xmmh, ufp1, sel=1, size=1
119 unpack xmml, xmmh, ufp1, ext=0, size=1
120 unpack xmmh, xmmh, ufp1, ext=1, size=1
121};
122
123def macroop PUNPCKHBW_XMM_P {
124 rdip t7
125 lea t1, seg, riprel, disp, dataSize=asz
126 ldfp ufp1, seg, [1, t0, t1], 8, dataSize=8
121};
122
123def macroop PUNPCKHBW_XMM_P {
124 rdip t7
125 lea t1, seg, riprel, disp, dataSize=asz
126 ldfp ufp1, seg, [1, t0, t1], 8, dataSize=8
127 unpack xmml, xmmh, ufp1, sel=0, size=1
128 unpack xmmh, xmmh, ufp1, sel=1, size=1
127 unpack xmml, xmmh, ufp1, ext=0, size=1
128 unpack xmmh, xmmh, ufp1, ext=1, size=1
129};
130
131def macroop PUNPCKHWD_XMM_XMM {
129};
130
131def macroop PUNPCKHWD_XMM_XMM {
132 unpack xmml, xmmh, xmmhm, sel=0, size=2
133 unpack xmmh, xmmh, xmmhm, sel=1, size=2
132 unpack xmml, xmmh, xmmhm, ext=0, size=2
133 unpack xmmh, xmmh, xmmhm, ext=1, size=2
134};
135
136def macroop PUNPCKHWD_XMM_M {
137 lea t1, seg, sib, disp, dataSize=asz
138 ldfp ufp1, seg, [1, t0, t1], 8, dataSize=8
134};
135
136def macroop PUNPCKHWD_XMM_M {
137 lea t1, seg, sib, disp, dataSize=asz
138 ldfp ufp1, seg, [1, t0, t1], 8, dataSize=8
139 unpack xmml, xmmh, ufp1, sel=0, size=2
140 unpack xmmh, xmmh, ufp1, sel=1, size=2
139 unpack xmml, xmmh, ufp1, ext=0, size=2
140 unpack xmmh, xmmh, ufp1, ext=1, size=2
141};
142
143def macroop PUNPCKHWD_XMM_P {
144 rdip t7
145 lea t1, seg, riprel, disp, dataSize=asz
146 ldfp ufp1, seg, [1, t0, t1], 8, dataSize=8
141};
142
143def macroop PUNPCKHWD_XMM_P {
144 rdip t7
145 lea t1, seg, riprel, disp, dataSize=asz
146 ldfp ufp1, seg, [1, t0, t1], 8, dataSize=8
147 unpack xmml, xmmh, ufp1, sel=0, size=2
148 unpack xmmh, xmmh, ufp1, sel=1, size=2
147 unpack xmml, xmmh, ufp1, ext=0, size=2
148 unpack xmmh, xmmh, ufp1, ext=1, size=2
149};
150
151def macroop PUNPCKHDQ_XMM_XMM {
149};
150
151def macroop PUNPCKHDQ_XMM_XMM {
152 unpack xmml, xmmh, xmmhm, sel=0, size=4
153 unpack xmmh, xmmh, xmmhm, sel=1, size=4
152 unpack xmml, xmmh, xmmhm, ext=0, size=4
153 unpack xmmh, xmmh, xmmhm, ext=1, size=4
154};
155
156def macroop PUNPCKHDQ_XMM_M {
157 lea t1, seg, sib, disp, dataSize=asz
158 ldfp ufp1, seg, [1, t0, t1], 8, dataSize=8
154};
155
156def macroop PUNPCKHDQ_XMM_M {
157 lea t1, seg, sib, disp, dataSize=asz
158 ldfp ufp1, seg, [1, t0, t1], 8, dataSize=8
159 unpack xmml, xmmh, ufp1, sel=0, size=4
160 unpack xmmh, xmmh, ufp1, sel=1, size=4
159 unpack xmml, xmmh, ufp1, ext=0, size=4
160 unpack xmmh, xmmh, ufp1, ext=1, size=4
161};
162
163def macroop PUNPCKHDQ_XMM_P {
164 rdip t7
165 lea t1, seg, riprel, disp, dataSize=asz
166 ldfp ufp1, seg, [1, t0, t1], 8, dataSize=8
161};
162
163def macroop PUNPCKHDQ_XMM_P {
164 rdip t7
165 lea t1, seg, riprel, disp, dataSize=asz
166 ldfp ufp1, seg, [1, t0, t1], 8, dataSize=8
167 unpack xmml, xmmh, ufp1, sel=0, size=4
168 unpack xmmh, xmmh, ufp1, sel=1, size=4
167 unpack xmml, xmmh, ufp1, ext=0, size=4
168 unpack xmmh, xmmh, ufp1, ext=1, size=4
169};
170
171def macroop PUNPCKHQDQ_XMM_XMM {
172 movfp xmml, xmmh
173 movfp xmmh, xmmhm
174};
175
176def macroop PUNPCKHQDQ_XMM_M {

--- 27 unchanged lines hidden ---
169};
170
171def macroop PUNPCKHQDQ_XMM_XMM {
172 movfp xmml, xmmh
173 movfp xmmh, xmmhm
174};
175
176def macroop PUNPCKHQDQ_XMM_M {

--- 27 unchanged lines hidden ---