Absolute File Name: | /home/opencoverage/opencoverage/guest-scripts/qtdeclarative/src/qtdeclarative/src/3rdparty/masm/assembler/MacroAssemblerX86Common.h |
Switch to Source code | Preprocessed file |
Line | Source | Count | ||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
1 | - | |||||||||||||||||||||||||||||||
2 | - | |||||||||||||||||||||||||||||||
3 | namespace JSC { | - | ||||||||||||||||||||||||||||||
4 | - | |||||||||||||||||||||||||||||||
5 | class MacroAssemblerX86Common : public AbstractMacroAssembler<X86Assembler> { | - | ||||||||||||||||||||||||||||||
6 | protected: | - | ||||||||||||||||||||||||||||||
7 | - | |||||||||||||||||||||||||||||||
8 | static const X86Registers::RegisterID scratchRegister = X86Registers::r11; | - | ||||||||||||||||||||||||||||||
9 | - | |||||||||||||||||||||||||||||||
10 | - | |||||||||||||||||||||||||||||||
11 | static const int DoubleConditionBitInvert = 0x10; | - | ||||||||||||||||||||||||||||||
12 | static const int DoubleConditionBitSpecial = 0x20; | - | ||||||||||||||||||||||||||||||
13 | static const int DoubleConditionBits = DoubleConditionBitInvert | DoubleConditionBitSpecial; | - | ||||||||||||||||||||||||||||||
14 | - | |||||||||||||||||||||||||||||||
15 | public: | - | ||||||||||||||||||||||||||||||
16 | typedef X86Assembler::FPRegisterID FPRegisterID; | - | ||||||||||||||||||||||||||||||
17 | typedef X86Assembler::XMMRegisterID XMMRegisterID; | - | ||||||||||||||||||||||||||||||
18 | - | |||||||||||||||||||||||||||||||
19 | static bool isCompactPtrAlignedAddressOffset(ptrdiff_t value) | - | ||||||||||||||||||||||||||||||
20 | { | - | ||||||||||||||||||||||||||||||
21 | return never executed: value >= -128 && value <= 127;return value >= -128 && value <= 127; never executed: return value >= -128 && value <= 127; | 0 | ||||||||||||||||||||||||||||||
22 | } | - | ||||||||||||||||||||||||||||||
23 | - | |||||||||||||||||||||||||||||||
24 | enum RelationalCondition { | - | ||||||||||||||||||||||||||||||
25 | Equal = X86Assembler::ConditionE, | - | ||||||||||||||||||||||||||||||
26 | NotEqual = X86Assembler::ConditionNE, | - | ||||||||||||||||||||||||||||||
27 | Above = X86Assembler::ConditionA, | - | ||||||||||||||||||||||||||||||
28 | AboveOrEqual = X86Assembler::ConditionAE, | - | ||||||||||||||||||||||||||||||
29 | Below = X86Assembler::ConditionB, | - | ||||||||||||||||||||||||||||||
30 | BelowOrEqual = X86Assembler::ConditionBE, | - | ||||||||||||||||||||||||||||||
31 | GreaterThan = X86Assembler::ConditionG, | - | ||||||||||||||||||||||||||||||
32 | GreaterThanOrEqual = X86Assembler::ConditionGE, | - | ||||||||||||||||||||||||||||||
33 | LessThan = X86Assembler::ConditionL, | - | ||||||||||||||||||||||||||||||
34 | LessThanOrEqual = X86Assembler::ConditionLE | - | ||||||||||||||||||||||||||||||
35 | }; | - | ||||||||||||||||||||||||||||||
36 | - | |||||||||||||||||||||||||||||||
37 | enum ResultCondition { | - | ||||||||||||||||||||||||||||||
38 | Overflow = X86Assembler::ConditionO, | - | ||||||||||||||||||||||||||||||
39 | Signed = X86Assembler::ConditionS, | - | ||||||||||||||||||||||||||||||
40 | Zero = X86Assembler::ConditionE, | - | ||||||||||||||||||||||||||||||
41 | NonZero = X86Assembler::ConditionNE | - | ||||||||||||||||||||||||||||||
42 | }; | - | ||||||||||||||||||||||||||||||
43 | - | |||||||||||||||||||||||||||||||
44 | enum DoubleCondition { | - | ||||||||||||||||||||||||||||||
45 | - | |||||||||||||||||||||||||||||||
46 | DoubleEqual = X86Assembler::ConditionE | DoubleConditionBitSpecial, | - | ||||||||||||||||||||||||||||||
47 | DoubleNotEqual = X86Assembler::ConditionNE, | - | ||||||||||||||||||||||||||||||
48 | DoubleGreaterThan = X86Assembler::ConditionA, | - | ||||||||||||||||||||||||||||||
49 | DoubleGreaterThanOrEqual = X86Assembler::ConditionAE, | - | ||||||||||||||||||||||||||||||
50 | DoubleLessThan = X86Assembler::ConditionA | DoubleConditionBitInvert, | - | ||||||||||||||||||||||||||||||
51 | DoubleLessThanOrEqual = X86Assembler::ConditionAE | DoubleConditionBitInvert, | - | ||||||||||||||||||||||||||||||
52 | - | |||||||||||||||||||||||||||||||
53 | DoubleEqualOrUnordered = X86Assembler::ConditionE, | - | ||||||||||||||||||||||||||||||
54 | DoubleNotEqualOrUnordered = X86Assembler::ConditionNE | DoubleConditionBitSpecial, | - | ||||||||||||||||||||||||||||||
55 | DoubleGreaterThanOrUnordered = X86Assembler::ConditionB | DoubleConditionBitInvert, | - | ||||||||||||||||||||||||||||||
56 | DoubleGreaterThanOrEqualOrUnordered = X86Assembler::ConditionBE | DoubleConditionBitInvert, | - | ||||||||||||||||||||||||||||||
57 | DoubleLessThanOrUnordered = X86Assembler::ConditionB, | - | ||||||||||||||||||||||||||||||
58 | DoubleLessThanOrEqualOrUnordered = X86Assembler::ConditionBE, | - | ||||||||||||||||||||||||||||||
59 | }; | - | ||||||||||||||||||||||||||||||
60 | static_assert((!((X86Assembler::ConditionE | X86Assembler::ConditionNE | X86Assembler::ConditionA | X86Assembler::ConditionAE | X86Assembler::ConditionB | X86Assembler::ConditionBE) & DoubleConditionBits)), "DoubleConditionBits_should_not_interfere_with_X86Assembler_Condition_codes") | - | ||||||||||||||||||||||||||||||
61 | - | |||||||||||||||||||||||||||||||
62 | ; | - | ||||||||||||||||||||||||||||||
63 | - | |||||||||||||||||||||||||||||||
64 | static const RegisterID stackPointerRegister = X86Registers::esp; | - | ||||||||||||||||||||||||||||||
65 | void add32(RegisterID src, RegisterID dest) | - | ||||||||||||||||||||||||||||||
66 | { | - | ||||||||||||||||||||||||||||||
67 | m_assembler.addl_rr(src, dest); | - | ||||||||||||||||||||||||||||||
68 | } executed 2130 times by 29 tests: end of block Executed by:
| 2130 | ||||||||||||||||||||||||||||||
69 | - | |||||||||||||||||||||||||||||||
70 | void add32(TrustedImm32 imm, Address address) | - | ||||||||||||||||||||||||||||||
71 | { | - | ||||||||||||||||||||||||||||||
72 | m_assembler.addl_im(imm.m_value, address.offset, address.base); | - | ||||||||||||||||||||||||||||||
73 | } never executed: end of block | 0 | ||||||||||||||||||||||||||||||
74 | - | |||||||||||||||||||||||||||||||
75 | void add32(TrustedImm32 imm, RegisterID dest) | - | ||||||||||||||||||||||||||||||
76 | { | - | ||||||||||||||||||||||||||||||
77 | m_assembler.addl_ir(imm.m_value, dest); | - | ||||||||||||||||||||||||||||||
78 | } executed 3358766 times by 153 tests: end of block Executed by:
| 3358766 | ||||||||||||||||||||||||||||||
79 | - | |||||||||||||||||||||||||||||||
80 | void add32(Address src, RegisterID dest) | - | ||||||||||||||||||||||||||||||
81 | { | - | ||||||||||||||||||||||||||||||
82 | m_assembler.addl_mr(src.offset, src.base, dest); | - | ||||||||||||||||||||||||||||||
83 | } never executed: end of block | 0 | ||||||||||||||||||||||||||||||
84 | - | |||||||||||||||||||||||||||||||
85 | void add32(RegisterID src, Address dest) | - | ||||||||||||||||||||||||||||||
86 | { | - | ||||||||||||||||||||||||||||||
87 | m_assembler.addl_rm(src, dest.offset, dest.base); | - | ||||||||||||||||||||||||||||||
88 | } never executed: end of block | 0 | ||||||||||||||||||||||||||||||
89 | - | |||||||||||||||||||||||||||||||
90 | void add32(TrustedImm32 imm, RegisterID src, RegisterID dest) | - | ||||||||||||||||||||||||||||||
91 | { | - | ||||||||||||||||||||||||||||||
92 | m_assembler.leal_mr(imm.m_value, src, dest); | - | ||||||||||||||||||||||||||||||
93 | } never executed: end of block | 0 | ||||||||||||||||||||||||||||||
94 | - | |||||||||||||||||||||||||||||||
95 | void and32(RegisterID src, RegisterID dest) | - | ||||||||||||||||||||||||||||||
96 | { | - | ||||||||||||||||||||||||||||||
97 | m_assembler.andl_rr(src, dest); | - | ||||||||||||||||||||||||||||||
98 | } never executed: end of block | 0 | ||||||||||||||||||||||||||||||
99 | - | |||||||||||||||||||||||||||||||
100 | void add32(RegisterID op1, RegisterID op2, RegisterID dest) | - | ||||||||||||||||||||||||||||||
101 | { | - | ||||||||||||||||||||||||||||||
102 | if (op2 == dest
| 0 | ||||||||||||||||||||||||||||||
103 | add32(op1, dest); | - | ||||||||||||||||||||||||||||||
104 | } never executed: else {end of block | 0 | ||||||||||||||||||||||||||||||
105 | move(op1, dest); | - | ||||||||||||||||||||||||||||||
106 | add32(op2, dest); | - | ||||||||||||||||||||||||||||||
107 | } never executed: end of block | 0 | ||||||||||||||||||||||||||||||
108 | } | - | ||||||||||||||||||||||||||||||
109 | - | |||||||||||||||||||||||||||||||
110 | void and32(TrustedImm32 imm, RegisterID dest) | - | ||||||||||||||||||||||||||||||
111 | { | - | ||||||||||||||||||||||||||||||
112 | m_assembler.andl_ir(imm.m_value, dest); | - | ||||||||||||||||||||||||||||||
113 | } executed 3812 times by 38 tests: end of block Executed by:
| 3812 | ||||||||||||||||||||||||||||||
114 | - | |||||||||||||||||||||||||||||||
115 | void and32(RegisterID src, Address dest) | - | ||||||||||||||||||||||||||||||
116 | { | - | ||||||||||||||||||||||||||||||
117 | m_assembler.andl_rm(src, dest.offset, dest.base); | - | ||||||||||||||||||||||||||||||
118 | } never executed: end of block | 0 | ||||||||||||||||||||||||||||||
119 | - | |||||||||||||||||||||||||||||||
120 | void and32(Address src, RegisterID dest) | - | ||||||||||||||||||||||||||||||
121 | { | - | ||||||||||||||||||||||||||||||
122 | m_assembler.andl_mr(src.offset, src.base, dest); | - | ||||||||||||||||||||||||||||||
123 | } never executed: end of block | 0 | ||||||||||||||||||||||||||||||
124 | - | |||||||||||||||||||||||||||||||
125 | void and32(TrustedImm32 imm, Address address) | - | ||||||||||||||||||||||||||||||
126 | { | - | ||||||||||||||||||||||||||||||
127 | m_assembler.andl_im(imm.m_value, address.offset, address.base); | - | ||||||||||||||||||||||||||||||
128 | } never executed: end of block | 0 | ||||||||||||||||||||||||||||||
129 | - | |||||||||||||||||||||||||||||||
130 | void and32(RegisterID op1, RegisterID op2, RegisterID dest) | - | ||||||||||||||||||||||||||||||
131 | { | - | ||||||||||||||||||||||||||||||
132 | if (op1 == op2
| 0 | ||||||||||||||||||||||||||||||
133 | zeroExtend32ToPtr(op1, dest); never executed: zeroExtend32ToPtr(op1, dest); | 0 | ||||||||||||||||||||||||||||||
134 | else if (op1 == dest
| 0 | ||||||||||||||||||||||||||||||
135 | and32(op2, dest); never executed: and32(op2, dest); | 0 | ||||||||||||||||||||||||||||||
136 | else { | - | ||||||||||||||||||||||||||||||
137 | move(op2, dest); | - | ||||||||||||||||||||||||||||||
138 | and32(op1, dest); | - | ||||||||||||||||||||||||||||||
139 | } never executed: end of block | 0 | ||||||||||||||||||||||||||||||
140 | } | - | ||||||||||||||||||||||||||||||
141 | - | |||||||||||||||||||||||||||||||
142 | void and32(TrustedImm32 imm, RegisterID src, RegisterID dest) | - | ||||||||||||||||||||||||||||||
143 | { | - | ||||||||||||||||||||||||||||||
144 | move(src, dest); | - | ||||||||||||||||||||||||||||||
145 | and32(imm, dest); | - | ||||||||||||||||||||||||||||||
146 | } executed 3808 times by 38 tests: end of block Executed by:
| 3808 | ||||||||||||||||||||||||||||||
147 | - | |||||||||||||||||||||||||||||||
148 | void lshift32(RegisterID shift_amount, RegisterID dest) | - | ||||||||||||||||||||||||||||||
149 | { | - | ||||||||||||||||||||||||||||||
150 | (!(shift_amount != dest) ? (qmlWTFReportAssertionFailure(__FILE__, 199, __PRETTY_FUNCTION__, "shift_amount != dest"), (qmlWTFReportBacktrace(), qmlWTFInvokeCrashHook(), (*(int *)(uintptr_t)0xbbadbeef = 0), __builtin_trap())) : (void)0); | - | ||||||||||||||||||||||||||||||
151 | - | |||||||||||||||||||||||||||||||
152 | if (shift_amount == X86Registers::ecx
| 0 | ||||||||||||||||||||||||||||||
153 | m_assembler.shll_CLr(dest); never executed: m_assembler.shll_CLr(dest); | 0 | ||||||||||||||||||||||||||||||
154 | else { | - | ||||||||||||||||||||||||||||||
155 | - | |||||||||||||||||||||||||||||||
156 | - | |||||||||||||||||||||||||||||||
157 | - | |||||||||||||||||||||||||||||||
158 | swap(shift_amount, X86Registers::ecx); | - | ||||||||||||||||||||||||||||||
159 | m_assembler.shll_CLr(dest == X86Registers::ecx ? shift_amount : dest); | - | ||||||||||||||||||||||||||||||
160 | swap(shift_amount, X86Registers::ecx); | - | ||||||||||||||||||||||||||||||
161 | } never executed: end of block | 0 | ||||||||||||||||||||||||||||||
162 | } | - | ||||||||||||||||||||||||||||||
163 | - | |||||||||||||||||||||||||||||||
164 | void lshift32(RegisterID src, RegisterID shift_amount, RegisterID dest) | - | ||||||||||||||||||||||||||||||
165 | { | - | ||||||||||||||||||||||||||||||
166 | (!(shift_amount != dest) ? (qmlWTFReportAssertionFailure(__FILE__, 215, __PRETTY_FUNCTION__, "shift_amount != dest"), (qmlWTFReportBacktrace(), qmlWTFInvokeCrashHook(), (*(int *)(uintptr_t)0xbbadbeef = 0), __builtin_trap())) : (void)0); | - | ||||||||||||||||||||||||||||||
167 | - | |||||||||||||||||||||||||||||||
168 | if (src != dest
| 0 | ||||||||||||||||||||||||||||||
169 | move(src, dest); never executed: move(src, dest); | 0 | ||||||||||||||||||||||||||||||
170 | lshift32(shift_amount, dest); | - | ||||||||||||||||||||||||||||||
171 | } never executed: end of block | 0 | ||||||||||||||||||||||||||||||
172 | - | |||||||||||||||||||||||||||||||
173 | void lshift32(TrustedImm32 imm, RegisterID dest) | - | ||||||||||||||||||||||||||||||
174 | { | - | ||||||||||||||||||||||||||||||
175 | m_assembler.shll_i8r(imm.m_value, dest); | - | ||||||||||||||||||||||||||||||
176 | } never executed: end of block | 0 | ||||||||||||||||||||||||||||||
177 | - | |||||||||||||||||||||||||||||||
178 | void lshift32(RegisterID src, TrustedImm32 imm, RegisterID dest) | - | ||||||||||||||||||||||||||||||
179 | { | - | ||||||||||||||||||||||||||||||
180 | if (src != dest
| 0 | ||||||||||||||||||||||||||||||
181 | move(src, dest); never executed: move(src, dest); | 0 | ||||||||||||||||||||||||||||||
182 | lshift32(imm, dest); | - | ||||||||||||||||||||||||||||||
183 | } never executed: end of block | 0 | ||||||||||||||||||||||||||||||
184 | - | |||||||||||||||||||||||||||||||
185 | void mul32(RegisterID src, RegisterID dest) | - | ||||||||||||||||||||||||||||||
186 | { | - | ||||||||||||||||||||||||||||||
187 | m_assembler.imull_rr(src, dest); | - | ||||||||||||||||||||||||||||||
188 | } executed 896 times by 13 tests: end of block Executed by:
| 896 | ||||||||||||||||||||||||||||||
189 | - | |||||||||||||||||||||||||||||||
190 | void mul32(RegisterID op1, RegisterID op2, RegisterID dest) | - | ||||||||||||||||||||||||||||||
191 | { | - | ||||||||||||||||||||||||||||||
192 | if (op2 == dest
| 0 | ||||||||||||||||||||||||||||||
193 | mul32(op1, dest); | - | ||||||||||||||||||||||||||||||
194 | } never executed: else {end of block | 0 | ||||||||||||||||||||||||||||||
195 | move(op1, dest); | - | ||||||||||||||||||||||||||||||
196 | mul32(op2, dest); | - | ||||||||||||||||||||||||||||||
197 | } never executed: end of block | 0 | ||||||||||||||||||||||||||||||
198 | } | - | ||||||||||||||||||||||||||||||
199 | - | |||||||||||||||||||||||||||||||
200 | void mul32(Address src, RegisterID dest) | - | ||||||||||||||||||||||||||||||
201 | { | - | ||||||||||||||||||||||||||||||
202 | m_assembler.imull_mr(src.offset, src.base, dest); | - | ||||||||||||||||||||||||||||||
203 | } never executed: end of block | 0 | ||||||||||||||||||||||||||||||
204 | - | |||||||||||||||||||||||||||||||
205 | void mul32(TrustedImm32 imm, RegisterID src, RegisterID dest) | - | ||||||||||||||||||||||||||||||
206 | { | - | ||||||||||||||||||||||||||||||
207 | m_assembler.imull_i32r(src, imm.m_value, dest); | - | ||||||||||||||||||||||||||||||
208 | } never executed: end of block | 0 | ||||||||||||||||||||||||||||||
209 | - | |||||||||||||||||||||||||||||||
210 | void neg32(RegisterID srcDest) | - | ||||||||||||||||||||||||||||||
211 | { | - | ||||||||||||||||||||||||||||||
212 | m_assembler.negl_r(srcDest); | - | ||||||||||||||||||||||||||||||
213 | } never executed: end of block | 0 | ||||||||||||||||||||||||||||||
214 | - | |||||||||||||||||||||||||||||||
215 | void neg32(Address srcDest) | - | ||||||||||||||||||||||||||||||
216 | { | - | ||||||||||||||||||||||||||||||
217 | m_assembler.negl_m(srcDest.offset, srcDest.base); | - | ||||||||||||||||||||||||||||||
218 | } never executed: end of block | 0 | ||||||||||||||||||||||||||||||
219 | - | |||||||||||||||||||||||||||||||
220 | void or32(RegisterID src, RegisterID dest) | - | ||||||||||||||||||||||||||||||
221 | { | - | ||||||||||||||||||||||||||||||
222 | m_assembler.orl_rr(src, dest); | - | ||||||||||||||||||||||||||||||
223 | } executed 14 times by 1 test: end of block Executed by:
| 14 | ||||||||||||||||||||||||||||||
224 | - | |||||||||||||||||||||||||||||||
225 | void or32(TrustedImm32 imm, RegisterID dest) | - | ||||||||||||||||||||||||||||||
226 | { | - | ||||||||||||||||||||||||||||||
227 | m_assembler.orl_ir(imm.m_value, dest); | - | ||||||||||||||||||||||||||||||
228 | } executed 229 times by 3 tests: end of block Executed by:
| 229 | ||||||||||||||||||||||||||||||
229 | - | |||||||||||||||||||||||||||||||
230 | void or32(RegisterID src, Address dest) | - | ||||||||||||||||||||||||||||||
231 | { | - | ||||||||||||||||||||||||||||||
232 | m_assembler.orl_rm(src, dest.offset, dest.base); | - | ||||||||||||||||||||||||||||||
233 | } never executed: end of block | 0 | ||||||||||||||||||||||||||||||
234 | - | |||||||||||||||||||||||||||||||
235 | void or32(Address src, RegisterID dest) | - | ||||||||||||||||||||||||||||||
236 | { | - | ||||||||||||||||||||||||||||||
237 | m_assembler.orl_mr(src.offset, src.base, dest); | - | ||||||||||||||||||||||||||||||
238 | } never executed: end of block | 0 | ||||||||||||||||||||||||||||||
239 | - | |||||||||||||||||||||||||||||||
240 | void or32(TrustedImm32 imm, Address address) | - | ||||||||||||||||||||||||||||||
241 | { | - | ||||||||||||||||||||||||||||||
242 | m_assembler.orl_im(imm.m_value, address.offset, address.base); | - | ||||||||||||||||||||||||||||||
243 | } never executed: end of block | 0 | ||||||||||||||||||||||||||||||
244 | - | |||||||||||||||||||||||||||||||
245 | void or32(RegisterID op1, RegisterID op2, RegisterID dest) | - | ||||||||||||||||||||||||||||||
246 | { | - | ||||||||||||||||||||||||||||||
247 | if (op1 == op2
| 0 | ||||||||||||||||||||||||||||||
248 | zeroExtend32ToPtr(op1, dest); never executed: zeroExtend32ToPtr(op1, dest); | 0 | ||||||||||||||||||||||||||||||
249 | else if (op1 == dest
| 0 | ||||||||||||||||||||||||||||||
250 | or32(op2, dest); never executed: or32(op2, dest); | 0 | ||||||||||||||||||||||||||||||
251 | else { | - | ||||||||||||||||||||||||||||||
252 | move(op2, dest); | - | ||||||||||||||||||||||||||||||
253 | or32(op1, dest); | - | ||||||||||||||||||||||||||||||
254 | } never executed: end of block | 0 | ||||||||||||||||||||||||||||||
255 | } | - | ||||||||||||||||||||||||||||||
256 | - | |||||||||||||||||||||||||||||||
257 | void or32(TrustedImm32 imm, RegisterID src, RegisterID dest) | - | ||||||||||||||||||||||||||||||
258 | { | - | ||||||||||||||||||||||||||||||
259 | move(src, dest); | - | ||||||||||||||||||||||||||||||
260 | or32(imm, dest); | - | ||||||||||||||||||||||||||||||
261 | } never executed: end of block | 0 | ||||||||||||||||||||||||||||||
262 | - | |||||||||||||||||||||||||||||||
263 | void rshift32(RegisterID shift_amount, RegisterID dest) | - | ||||||||||||||||||||||||||||||
264 | { | - | ||||||||||||||||||||||||||||||
265 | (!(shift_amount != dest) ? (qmlWTFReportAssertionFailure(__FILE__, 314, __PRETTY_FUNCTION__, "shift_amount != dest"), (qmlWTFReportBacktrace(), qmlWTFInvokeCrashHook(), (*(int *)(uintptr_t)0xbbadbeef = 0), __builtin_trap())) : (void)0); | - | ||||||||||||||||||||||||||||||
266 | - | |||||||||||||||||||||||||||||||
267 | if (shift_amount == X86Registers::ecx
| 0 | ||||||||||||||||||||||||||||||
268 | m_assembler.sarl_CLr(dest); never executed: m_assembler.sarl_CLr(dest); | 0 | ||||||||||||||||||||||||||||||
269 | else { | - | ||||||||||||||||||||||||||||||
270 | - | |||||||||||||||||||||||||||||||
271 | - | |||||||||||||||||||||||||||||||
272 | - | |||||||||||||||||||||||||||||||
273 | swap(shift_amount, X86Registers::ecx); | - | ||||||||||||||||||||||||||||||
274 | m_assembler.sarl_CLr(dest == X86Registers::ecx ? shift_amount : dest); | - | ||||||||||||||||||||||||||||||
275 | swap(shift_amount, X86Registers::ecx); | - | ||||||||||||||||||||||||||||||
276 | } never executed: end of block | 0 | ||||||||||||||||||||||||||||||
277 | } | - | ||||||||||||||||||||||||||||||
278 | - | |||||||||||||||||||||||||||||||
279 | void rshift32(RegisterID src, RegisterID shift_amount, RegisterID dest) | - | ||||||||||||||||||||||||||||||
280 | { | - | ||||||||||||||||||||||||||||||
281 | (!(shift_amount != dest) ? (qmlWTFReportAssertionFailure(__FILE__, 330, __PRETTY_FUNCTION__, "shift_amount != dest"), (qmlWTFReportBacktrace(), qmlWTFInvokeCrashHook(), (*(int *)(uintptr_t)0xbbadbeef = 0), __builtin_trap())) : (void)0); | - | ||||||||||||||||||||||||||||||
282 | - | |||||||||||||||||||||||||||||||
283 | if (src != dest
| 0 | ||||||||||||||||||||||||||||||
284 | move(src, dest); never executed: move(src, dest); | 0 | ||||||||||||||||||||||||||||||
285 | rshift32(shift_amount, dest); | - | ||||||||||||||||||||||||||||||
286 | } never executed: end of block | 0 | ||||||||||||||||||||||||||||||
287 | - | |||||||||||||||||||||||||||||||
288 | void rshift32(TrustedImm32 imm, RegisterID dest) | - | ||||||||||||||||||||||||||||||
289 | { | - | ||||||||||||||||||||||||||||||
290 | m_assembler.sarl_i8r(imm.m_value, dest); | - | ||||||||||||||||||||||||||||||
291 | } never executed: end of block | 0 | ||||||||||||||||||||||||||||||
292 | - | |||||||||||||||||||||||||||||||
293 | void rshift32(RegisterID src, TrustedImm32 imm, RegisterID dest) | - | ||||||||||||||||||||||||||||||
294 | { | - | ||||||||||||||||||||||||||||||
295 | if (src != dest
| 0 | ||||||||||||||||||||||||||||||
296 | move(src, dest); never executed: move(src, dest); | 0 | ||||||||||||||||||||||||||||||
297 | rshift32(imm, dest); | - | ||||||||||||||||||||||||||||||
298 | } never executed: end of block | 0 | ||||||||||||||||||||||||||||||
299 | - | |||||||||||||||||||||||||||||||
300 | void urshift32(RegisterID shift_amount, RegisterID dest) | - | ||||||||||||||||||||||||||||||
301 | { | - | ||||||||||||||||||||||||||||||
302 | (!(shift_amount != dest) ? (qmlWTFReportAssertionFailure(__FILE__, 351, __PRETTY_FUNCTION__, "shift_amount != dest"), (qmlWTFReportBacktrace(), qmlWTFInvokeCrashHook(), (*(int *)(uintptr_t)0xbbadbeef = 0), __builtin_trap())) : (void)0); | - | ||||||||||||||||||||||||||||||
303 | - | |||||||||||||||||||||||||||||||
304 | if (shift_amount == X86Registers::ecx
| 0 | ||||||||||||||||||||||||||||||
305 | m_assembler.shrl_CLr(dest); never executed: m_assembler.shrl_CLr(dest); | 0 | ||||||||||||||||||||||||||||||
306 | else { | - | ||||||||||||||||||||||||||||||
307 | - | |||||||||||||||||||||||||||||||
308 | - | |||||||||||||||||||||||||||||||
309 | - | |||||||||||||||||||||||||||||||
310 | swap(shift_amount, X86Registers::ecx); | - | ||||||||||||||||||||||||||||||
311 | m_assembler.shrl_CLr(dest == X86Registers::ecx ? shift_amount : dest); | - | ||||||||||||||||||||||||||||||
312 | swap(shift_amount, X86Registers::ecx); | - | ||||||||||||||||||||||||||||||
313 | } never executed: end of block | 0 | ||||||||||||||||||||||||||||||
314 | } | - | ||||||||||||||||||||||||||||||
315 | - | |||||||||||||||||||||||||||||||
316 | void urshift32(RegisterID src, RegisterID shift_amount, RegisterID dest) | - | ||||||||||||||||||||||||||||||
317 | { | - | ||||||||||||||||||||||||||||||
318 | (!(shift_amount != dest) ? (qmlWTFReportAssertionFailure(__FILE__, 367, __PRETTY_FUNCTION__, "shift_amount != dest"), (qmlWTFReportBacktrace(), qmlWTFInvokeCrashHook(), (*(int *)(uintptr_t)0xbbadbeef = 0), __builtin_trap())) : (void)0); | - | ||||||||||||||||||||||||||||||
319 | - | |||||||||||||||||||||||||||||||
320 | if (src != dest
| 0 | ||||||||||||||||||||||||||||||
321 | move(src, dest); never executed: move(src, dest); | 0 | ||||||||||||||||||||||||||||||
322 | urshift32(shift_amount, dest); | - | ||||||||||||||||||||||||||||||
323 | } never executed: end of block | 0 | ||||||||||||||||||||||||||||||
324 | - | |||||||||||||||||||||||||||||||
325 | void urshift32(TrustedImm32 imm, RegisterID dest) | - | ||||||||||||||||||||||||||||||
326 | { | - | ||||||||||||||||||||||||||||||
327 | m_assembler.shrl_i8r(imm.m_value, dest); | - | ||||||||||||||||||||||||||||||
328 | } never executed: end of block | 0 | ||||||||||||||||||||||||||||||
329 | - | |||||||||||||||||||||||||||||||
330 | void urshift32(RegisterID src, TrustedImm32 imm, RegisterID dest) | - | ||||||||||||||||||||||||||||||
331 | { | - | ||||||||||||||||||||||||||||||
332 | if (src != dest
| 0 | ||||||||||||||||||||||||||||||
333 | move(src, dest); never executed: move(src, dest); | 0 | ||||||||||||||||||||||||||||||
334 | urshift32(imm, dest); | - | ||||||||||||||||||||||||||||||
335 | } never executed: end of block | 0 | ||||||||||||||||||||||||||||||
336 | - | |||||||||||||||||||||||||||||||
337 | void sub32(RegisterID src, RegisterID dest) | - | ||||||||||||||||||||||||||||||
338 | { | - | ||||||||||||||||||||||||||||||
339 | m_assembler.subl_rr(src, dest); | - | ||||||||||||||||||||||||||||||
340 | } executed 720 times by 22 tests: end of block Executed by:
| 720 | ||||||||||||||||||||||||||||||
341 | - | |||||||||||||||||||||||||||||||
342 | void sub32(TrustedImm32 imm, RegisterID dest) | - | ||||||||||||||||||||||||||||||
343 | { | - | ||||||||||||||||||||||||||||||
344 | m_assembler.subl_ir(imm.m_value, dest); | - | ||||||||||||||||||||||||||||||
345 | } executed 1057302 times by 16 tests: end of block Executed by:
| 1057302 | ||||||||||||||||||||||||||||||
346 | - | |||||||||||||||||||||||||||||||
347 | void sub32(TrustedImm32 imm, Address address) | - | ||||||||||||||||||||||||||||||
348 | { | - | ||||||||||||||||||||||||||||||
349 | m_assembler.subl_im(imm.m_value, address.offset, address.base); | - | ||||||||||||||||||||||||||||||
350 | } never executed: end of block | 0 | ||||||||||||||||||||||||||||||
351 | - | |||||||||||||||||||||||||||||||
352 | void sub32(Address src, RegisterID dest) | - | ||||||||||||||||||||||||||||||
353 | { | - | ||||||||||||||||||||||||||||||
354 | m_assembler.subl_mr(src.offset, src.base, dest); | - | ||||||||||||||||||||||||||||||
355 | } never executed: end of block | 0 | ||||||||||||||||||||||||||||||
356 | - | |||||||||||||||||||||||||||||||
357 | void sub32(RegisterID src, Address dest) | - | ||||||||||||||||||||||||||||||
358 | { | - | ||||||||||||||||||||||||||||||
359 | m_assembler.subl_rm(src, dest.offset, dest.base); | - | ||||||||||||||||||||||||||||||
360 | } never executed: end of block | 0 | ||||||||||||||||||||||||||||||
361 | - | |||||||||||||||||||||||||||||||
362 | void xor32(RegisterID src, RegisterID dest) | - | ||||||||||||||||||||||||||||||
363 | { | - | ||||||||||||||||||||||||||||||
364 | m_assembler.xorl_rr(src, dest); | - | ||||||||||||||||||||||||||||||
365 | } never executed: end of block | 0 | ||||||||||||||||||||||||||||||
366 | - | |||||||||||||||||||||||||||||||
367 | void xor32(TrustedImm32 imm, Address dest) | - | ||||||||||||||||||||||||||||||
368 | { | - | ||||||||||||||||||||||||||||||
369 | if (imm.m_value == -1
| 0 | ||||||||||||||||||||||||||||||
370 | m_assembler.notl_m(dest.offset, dest.base); never executed: m_assembler.notl_m(dest.offset, dest.base); | 0 | ||||||||||||||||||||||||||||||
371 | else | - | ||||||||||||||||||||||||||||||
372 | m_assembler.xorl_im(imm.m_value, dest.offset, dest.base); never executed: m_assembler.xorl_im(imm.m_value, dest.offset, dest.base); | 0 | ||||||||||||||||||||||||||||||
373 | } | - | ||||||||||||||||||||||||||||||
374 | - | |||||||||||||||||||||||||||||||
375 | void xor32(TrustedImm32 imm, RegisterID dest) | - | ||||||||||||||||||||||||||||||
376 | { | - | ||||||||||||||||||||||||||||||
377 | if (imm.m_value == -1
| 0-56 | ||||||||||||||||||||||||||||||
378 | m_assembler.notl_r(dest); never executed: m_assembler.notl_r(dest); | 0 | ||||||||||||||||||||||||||||||
379 | else | - | ||||||||||||||||||||||||||||||
380 | m_assembler.xorl_ir(imm.m_value, dest); executed 56 times by 6 tests: m_assembler.xorl_ir(imm.m_value, dest); Executed by:
| 56 | ||||||||||||||||||||||||||||||
381 | } | - | ||||||||||||||||||||||||||||||
382 | - | |||||||||||||||||||||||||||||||
383 | void xor32(RegisterID src, Address dest) | - | ||||||||||||||||||||||||||||||
384 | { | - | ||||||||||||||||||||||||||||||
385 | m_assembler.xorl_rm(src, dest.offset, dest.base); | - | ||||||||||||||||||||||||||||||
386 | } never executed: end of block | 0 | ||||||||||||||||||||||||||||||
387 | - | |||||||||||||||||||||||||||||||
388 | void xor32(Address src, RegisterID dest) | - | ||||||||||||||||||||||||||||||
389 | { | - | ||||||||||||||||||||||||||||||
390 | m_assembler.xorl_mr(src.offset, src.base, dest); | - | ||||||||||||||||||||||||||||||
391 | } never executed: end of block | 0 | ||||||||||||||||||||||||||||||
392 | - | |||||||||||||||||||||||||||||||
393 | void xor32(RegisterID op1, RegisterID op2, RegisterID dest) | - | ||||||||||||||||||||||||||||||
394 | { | - | ||||||||||||||||||||||||||||||
395 | if (op1 == op2
| 0 | ||||||||||||||||||||||||||||||
396 | move(TrustedImm32(0), dest); never executed: move(TrustedImm32(0), dest); | 0 | ||||||||||||||||||||||||||||||
397 | else if (op1 == dest
| 0 | ||||||||||||||||||||||||||||||
398 | xor32(op2, dest); never executed: xor32(op2, dest); | 0 | ||||||||||||||||||||||||||||||
399 | else { | - | ||||||||||||||||||||||||||||||
400 | move(op2, dest); | - | ||||||||||||||||||||||||||||||
401 | xor32(op1, dest); | - | ||||||||||||||||||||||||||||||
402 | } never executed: end of block | 0 | ||||||||||||||||||||||||||||||
403 | } | - | ||||||||||||||||||||||||||||||
404 | - | |||||||||||||||||||||||||||||||
405 | void xor32(TrustedImm32 imm, RegisterID src, RegisterID dest) | - | ||||||||||||||||||||||||||||||
406 | { | - | ||||||||||||||||||||||||||||||
407 | move(src, dest); | - | ||||||||||||||||||||||||||||||
408 | xor32(imm, dest); | - | ||||||||||||||||||||||||||||||
409 | } never executed: end of block | 0 | ||||||||||||||||||||||||||||||
410 | - | |||||||||||||||||||||||||||||||
411 | void sqrtDouble(FPRegisterID src, FPRegisterID dst) | - | ||||||||||||||||||||||||||||||
412 | { | - | ||||||||||||||||||||||||||||||
413 | m_assembler.sqrtsd_rr(src, dst); | - | ||||||||||||||||||||||||||||||
414 | } never executed: end of block | 0 | ||||||||||||||||||||||||||||||
415 | - | |||||||||||||||||||||||||||||||
416 | void absDouble(FPRegisterID src, FPRegisterID dst) | - | ||||||||||||||||||||||||||||||
417 | { | - | ||||||||||||||||||||||||||||||
418 | (!(src != dst) ? (qmlWTFReportAssertionFailure(__FILE__, 467, __PRETTY_FUNCTION__, "src != dst"), (qmlWTFReportBacktrace(), qmlWTFInvokeCrashHook(), (*(int *)(uintptr_t)0xbbadbeef = 0), __builtin_trap())) : (void)0); | - | ||||||||||||||||||||||||||||||
419 | static const double negativeZeroConstant = -0.0; | - | ||||||||||||||||||||||||||||||
420 | loadDouble(&negativeZeroConstant, dst); | - | ||||||||||||||||||||||||||||||
421 | m_assembler.andnpd_rr(src, dst); | - | ||||||||||||||||||||||||||||||
422 | } never executed: end of block | 0 | ||||||||||||||||||||||||||||||
423 | - | |||||||||||||||||||||||||||||||
424 | void negateDouble(FPRegisterID src, FPRegisterID dst) | - | ||||||||||||||||||||||||||||||
425 | { | - | ||||||||||||||||||||||||||||||
426 | (!(src != dst) ? (qmlWTFReportAssertionFailure(__FILE__, 475, __PRETTY_FUNCTION__, "src != dst"), (qmlWTFReportBacktrace(), qmlWTFInvokeCrashHook(), (*(int *)(uintptr_t)0xbbadbeef = 0), __builtin_trap())) : (void)0); | - | ||||||||||||||||||||||||||||||
427 | static const double negativeZeroConstant = -0.0; | - | ||||||||||||||||||||||||||||||
428 | loadDouble(&negativeZeroConstant, dst); | - | ||||||||||||||||||||||||||||||
429 | m_assembler.xorpd_rr(src, dst); | - | ||||||||||||||||||||||||||||||
430 | } never executed: end of block | 0 | ||||||||||||||||||||||||||||||
431 | void load32(ImplicitAddress address, RegisterID dest) | - | ||||||||||||||||||||||||||||||
432 | { | - | ||||||||||||||||||||||||||||||
433 | m_assembler.movl_mr(address.offset, address.base, dest); | - | ||||||||||||||||||||||||||||||
434 | } executed 1244 times by 13 tests: end of block Executed by:
| 1244 | ||||||||||||||||||||||||||||||
435 | - | |||||||||||||||||||||||||||||||
436 | void load32(BaseIndex address, RegisterID dest) | - | ||||||||||||||||||||||||||||||
437 | { | - | ||||||||||||||||||||||||||||||
438 | m_assembler.movl_mr(address.offset, address.base, address.index, address.scale, dest); | - | ||||||||||||||||||||||||||||||
439 | } executed 788658 times by 5 tests: end of block Executed by:
| 788658 | ||||||||||||||||||||||||||||||
440 | - | |||||||||||||||||||||||||||||||
441 | void load32WithUnalignedHalfWords(BaseIndex address, RegisterID dest) | - | ||||||||||||||||||||||||||||||
442 | { | - | ||||||||||||||||||||||||||||||
443 | load32(address, dest); | - | ||||||||||||||||||||||||||||||
444 | } executed 789288 times by 5 tests: end of block Executed by:
| 789288 | ||||||||||||||||||||||||||||||
445 | - | |||||||||||||||||||||||||||||||
446 | void load16Unaligned(BaseIndex address, RegisterID dest) | - | ||||||||||||||||||||||||||||||
447 | { | - | ||||||||||||||||||||||||||||||
448 | load16(address, dest); | - | ||||||||||||||||||||||||||||||
449 | } never executed: end of block | 0 | ||||||||||||||||||||||||||||||
450 | - | |||||||||||||||||||||||||||||||
451 | DataLabel32 load32WithAddressOffsetPatch(Address address, RegisterID dest) | - | ||||||||||||||||||||||||||||||
452 | { | - | ||||||||||||||||||||||||||||||
453 | padBeforePatch(); | - | ||||||||||||||||||||||||||||||
454 | m_assembler.movl_mr_disp32(address.offset, address.base, dest); | - | ||||||||||||||||||||||||||||||
455 | return never executed: DataLabel32(this);return DataLabel32(this); never executed: return DataLabel32(this); | 0 | ||||||||||||||||||||||||||||||
456 | } | - | ||||||||||||||||||||||||||||||
457 | - | |||||||||||||||||||||||||||||||
458 | DataLabelCompact load32WithCompactAddressOffsetPatch(Address address, RegisterID dest) | - | ||||||||||||||||||||||||||||||
459 | { | - | ||||||||||||||||||||||||||||||
460 | padBeforePatch(); | - | ||||||||||||||||||||||||||||||
461 | m_assembler.movl_mr_disp8(address.offset, address.base, dest); | - | ||||||||||||||||||||||||||||||
462 | return never executed: DataLabelCompact(this);return DataLabelCompact(this); never executed: return DataLabelCompact(this); | 0 | ||||||||||||||||||||||||||||||
463 | } | - | ||||||||||||||||||||||||||||||
464 | - | |||||||||||||||||||||||||||||||
465 | static void repatchCompact(CodeLocationDataLabelCompact dataLabelCompact, int32_t value) | - | ||||||||||||||||||||||||||||||
466 | { | - | ||||||||||||||||||||||||||||||
467 | (!(isCompactPtrAlignedAddressOffset(value)) ? (qmlWTFReportAssertionFailure(__FILE__, 525, __PRETTY_FUNCTION__, "isCompactPtrAlignedAddressOffset(value)"), (qmlWTFReportBacktrace(), qmlWTFInvokeCrashHook(), (*(int *)(uintptr_t)0xbbadbeef = 0), __builtin_trap())) : (void)0); | - | ||||||||||||||||||||||||||||||
468 | AssemblerType_T::repatchCompact(dataLabelCompact.dataLocation(), value); | - | ||||||||||||||||||||||||||||||
469 | } never executed: end of block | 0 | ||||||||||||||||||||||||||||||
470 | - | |||||||||||||||||||||||||||||||
471 | DataLabelCompact loadCompactWithAddressOffsetPatch(Address address, RegisterID dest) | - | ||||||||||||||||||||||||||||||
472 | { | - | ||||||||||||||||||||||||||||||
473 | padBeforePatch(); | - | ||||||||||||||||||||||||||||||
474 | m_assembler.movl_mr_disp8(address.offset, address.base, dest); | - | ||||||||||||||||||||||||||||||
475 | return never executed: DataLabelCompact(this);return DataLabelCompact(this); never executed: return DataLabelCompact(this); | 0 | ||||||||||||||||||||||||||||||
476 | } | - | ||||||||||||||||||||||||||||||
477 | - | |||||||||||||||||||||||||||||||
478 | void load8(BaseIndex address, RegisterID dest) | - | ||||||||||||||||||||||||||||||
479 | { | - | ||||||||||||||||||||||||||||||
480 | m_assembler.movzbl_mr(address.offset, address.base, address.index, address.scale, dest); | - | ||||||||||||||||||||||||||||||
481 | } never executed: end of block | 0 | ||||||||||||||||||||||||||||||
482 | - | |||||||||||||||||||||||||||||||
483 | void load8(ImplicitAddress address, RegisterID dest) | - | ||||||||||||||||||||||||||||||
484 | { | - | ||||||||||||||||||||||||||||||
485 | m_assembler.movzbl_mr(address.offset, address.base, dest); | - | ||||||||||||||||||||||||||||||
486 | } never executed: end of block | 0 | ||||||||||||||||||||||||||||||
487 | - | |||||||||||||||||||||||||||||||
488 | void load8Signed(BaseIndex address, RegisterID dest) | - | ||||||||||||||||||||||||||||||
489 | { | - | ||||||||||||||||||||||||||||||
490 | m_assembler.movsbl_mr(address.offset, address.base, address.index, address.scale, dest); | - | ||||||||||||||||||||||||||||||
491 | } never executed: end of block | 0 | ||||||||||||||||||||||||||||||
492 | - | |||||||||||||||||||||||||||||||
493 | void load8Signed(ImplicitAddress address, RegisterID dest) | - | ||||||||||||||||||||||||||||||
494 | { | - | ||||||||||||||||||||||||||||||
495 | m_assembler.movsbl_mr(address.offset, address.base, dest); | - | ||||||||||||||||||||||||||||||
496 | } never executed: end of block | 0 | ||||||||||||||||||||||||||||||
497 | - | |||||||||||||||||||||||||||||||
498 | void load16(BaseIndex address, RegisterID dest) | - | ||||||||||||||||||||||||||||||
499 | { | - | ||||||||||||||||||||||||||||||
500 | m_assembler.movzwl_mr(address.offset, address.base, address.index, address.scale, dest); | - | ||||||||||||||||||||||||||||||
501 | } executed 796989 times by 9 tests: end of block Executed by:
| 796989 | ||||||||||||||||||||||||||||||
502 | - | |||||||||||||||||||||||||||||||
503 | void load16(Address address, RegisterID dest) | - | ||||||||||||||||||||||||||||||
504 | { | - | ||||||||||||||||||||||||||||||
505 | m_assembler.movzwl_mr(address.offset, address.base, dest); | - | ||||||||||||||||||||||||||||||
506 | } never executed: end of block | 0 | ||||||||||||||||||||||||||||||
507 | - | |||||||||||||||||||||||||||||||
508 | void load16Signed(BaseIndex address, RegisterID dest) | - | ||||||||||||||||||||||||||||||
509 | { | - | ||||||||||||||||||||||||||||||
510 | m_assembler.movswl_mr(address.offset, address.base, address.index, address.scale, dest); | - | ||||||||||||||||||||||||||||||
511 | } never executed: end of block | 0 | ||||||||||||||||||||||||||||||
512 | - | |||||||||||||||||||||||||||||||
513 | void load16Signed(Address address, RegisterID dest) | - | ||||||||||||||||||||||||||||||
514 | { | - | ||||||||||||||||||||||||||||||
515 | m_assembler.movswl_mr(address.offset, address.base, dest); | - | ||||||||||||||||||||||||||||||
516 | } never executed: end of block | 0 | ||||||||||||||||||||||||||||||
517 | - | |||||||||||||||||||||||||||||||
518 | DataLabel32 store32WithAddressOffsetPatch(RegisterID src, Address address) | - | ||||||||||||||||||||||||||||||
519 | { | - | ||||||||||||||||||||||||||||||
520 | padBeforePatch(); | - | ||||||||||||||||||||||||||||||
521 | m_assembler.movl_rm_disp32(src, address.offset, address.base); | - | ||||||||||||||||||||||||||||||
522 | return never executed: DataLabel32(this);return DataLabel32(this); never executed: return DataLabel32(this); | 0 | ||||||||||||||||||||||||||||||
523 | } | - | ||||||||||||||||||||||||||||||
524 | - | |||||||||||||||||||||||||||||||
525 | void store32(RegisterID src, ImplicitAddress address) | - | ||||||||||||||||||||||||||||||
526 | { | - | ||||||||||||||||||||||||||||||
527 | m_assembler.movl_rm(src, address.offset, address.base); | - | ||||||||||||||||||||||||||||||
528 | } executed 2307046 times by 153 tests: end of block Executed by:
| 2307046 | ||||||||||||||||||||||||||||||
529 | - | |||||||||||||||||||||||||||||||
530 | void store32(RegisterID src, BaseIndex address) | - | ||||||||||||||||||||||||||||||
531 | { | - | ||||||||||||||||||||||||||||||
532 | m_assembler.movl_rm(src, address.offset, address.base, address.index, address.scale); | - | ||||||||||||||||||||||||||||||
533 | } never executed: end of block | 0 | ||||||||||||||||||||||||||||||
534 | - | |||||||||||||||||||||||||||||||
535 | void store32(TrustedImm32 imm, ImplicitAddress address) | - | ||||||||||||||||||||||||||||||
536 | { | - | ||||||||||||||||||||||||||||||
537 | m_assembler.movl_i32m(imm.m_value, address.offset, address.base); | - | ||||||||||||||||||||||||||||||
538 | } executed 1197378 times by 153 tests: end of block Executed by:
| 1197378 | ||||||||||||||||||||||||||||||
539 | - | |||||||||||||||||||||||||||||||
540 | void store32(TrustedImm32 imm, BaseIndex address) | - | ||||||||||||||||||||||||||||||
541 | { | - | ||||||||||||||||||||||||||||||
542 | m_assembler.movl_i32m(imm.m_value, address.offset, address.base, address.index, address.scale); | - | ||||||||||||||||||||||||||||||
543 | } never executed: end of block | 0 | ||||||||||||||||||||||||||||||
544 | - | |||||||||||||||||||||||||||||||
545 | void store8(TrustedImm32 imm, Address address) | - | ||||||||||||||||||||||||||||||
546 | { | - | ||||||||||||||||||||||||||||||
547 | (!(-128 <= imm.m_value && imm.m_value < 128) ? (qmlWTFReportAssertionFailure(__FILE__, 605, __PRETTY_FUNCTION__, "-128 <= imm.m_value && imm.m_value < 128"), (qmlWTFReportBacktrace(), qmlWTFInvokeCrashHook(), (*(int *)(uintptr_t)0xbbadbeef = 0), __builtin_trap())) : (void)0); | - | ||||||||||||||||||||||||||||||
548 | m_assembler.movb_i8m(imm.m_value, address.offset, address.base); | - | ||||||||||||||||||||||||||||||
549 | } never executed: end of block | 0 | ||||||||||||||||||||||||||||||
550 | - | |||||||||||||||||||||||||||||||
551 | void store8(TrustedImm32 imm, BaseIndex address) | - | ||||||||||||||||||||||||||||||
552 | { | - | ||||||||||||||||||||||||||||||
553 | (!(-128 <= imm.m_value && imm.m_value < 128) ? (qmlWTFReportAssertionFailure(__FILE__, 611, __PRETTY_FUNCTION__, "-128 <= imm.m_value && imm.m_value < 128"), (qmlWTFReportBacktrace(), qmlWTFInvokeCrashHook(), (*(int *)(uintptr_t)0xbbadbeef = 0), __builtin_trap())) : (void)0); | - | ||||||||||||||||||||||||||||||
554 | m_assembler.movb_i8m(imm.m_value, address.offset, address.base, address.index, address.scale); | - | ||||||||||||||||||||||||||||||
555 | } never executed: end of block | 0 | ||||||||||||||||||||||||||||||
556 | - | |||||||||||||||||||||||||||||||
557 | void store8(RegisterID src, BaseIndex address) | - | ||||||||||||||||||||||||||||||
558 | { | - | ||||||||||||||||||||||||||||||
559 | m_assembler.movb_rm(src, address.offset, address.base, address.index, address.scale); | - | ||||||||||||||||||||||||||||||
560 | } never executed: end of block | 0 | ||||||||||||||||||||||||||||||
561 | - | |||||||||||||||||||||||||||||||
562 | void store16(RegisterID src, BaseIndex address) | - | ||||||||||||||||||||||||||||||
563 | { | - | ||||||||||||||||||||||||||||||
564 | m_assembler.movw_rm(src, address.offset, address.base, address.index, address.scale); | - | ||||||||||||||||||||||||||||||
565 | } never executed: end of block | 0 | ||||||||||||||||||||||||||||||
566 | - | |||||||||||||||||||||||||||||||
567 | - | |||||||||||||||||||||||||||||||
568 | - | |||||||||||||||||||||||||||||||
569 | - | |||||||||||||||||||||||||||||||
570 | - | |||||||||||||||||||||||||||||||
571 | - | |||||||||||||||||||||||||||||||
572 | void moveDouble(FPRegisterID src, FPRegisterID dest) | - | ||||||||||||||||||||||||||||||
573 | { | - | ||||||||||||||||||||||||||||||
574 | (!(isSSE2Present()) ? (qmlWTFReportAssertionFailure(__FILE__, 676, __PRETTY_FUNCTION__, "isSSE2Present()"), (qmlWTFReportBacktrace(), qmlWTFInvokeCrashHook(), (*(int *)(uintptr_t)0xbbadbeef = 0), __builtin_trap())) : (void)0); | - | ||||||||||||||||||||||||||||||
575 | if (src != dest
| 0 | ||||||||||||||||||||||||||||||
576 | m_assembler.movsd_rr(src, dest); never executed: m_assembler.movsd_rr(src, dest); | 0 | ||||||||||||||||||||||||||||||
577 | } never executed: end of block | 0 | ||||||||||||||||||||||||||||||
578 | - | |||||||||||||||||||||||||||||||
579 | void loadDouble(const void* address, FPRegisterID dest) | - | ||||||||||||||||||||||||||||||
580 | { | - | ||||||||||||||||||||||||||||||
581 | - | |||||||||||||||||||||||||||||||
582 | - | |||||||||||||||||||||||||||||||
583 | - | |||||||||||||||||||||||||||||||
584 | - | |||||||||||||||||||||||||||||||
585 | move(TrustedImmPtr(address), scratchRegister); | - | ||||||||||||||||||||||||||||||
586 | loadDouble(scratchRegister, dest); | - | ||||||||||||||||||||||||||||||
587 | - | |||||||||||||||||||||||||||||||
588 | } never executed: end of block | 0 | ||||||||||||||||||||||||||||||
589 | - | |||||||||||||||||||||||||||||||
590 | void loadDouble(ImplicitAddress address, FPRegisterID dest) | - | ||||||||||||||||||||||||||||||
591 | { | - | ||||||||||||||||||||||||||||||
592 | (!(isSSE2Present()) ? (qmlWTFReportAssertionFailure(__FILE__, 694, __PRETTY_FUNCTION__, "isSSE2Present()"), (qmlWTFReportBacktrace(), qmlWTFInvokeCrashHook(), (*(int *)(uintptr_t)0xbbadbeef = 0), __builtin_trap())) : (void)0); | - | ||||||||||||||||||||||||||||||
593 | m_assembler.movsd_mr(address.offset, address.base, dest); | - | ||||||||||||||||||||||||||||||
594 | } never executed: end of block | 0 | ||||||||||||||||||||||||||||||
595 | - | |||||||||||||||||||||||||||||||
596 | void loadDouble(BaseIndex address, FPRegisterID dest) | - | ||||||||||||||||||||||||||||||
597 | { | - | ||||||||||||||||||||||||||||||
598 | (!(isSSE2Present()) ? (qmlWTFReportAssertionFailure(__FILE__, 700, __PRETTY_FUNCTION__, "isSSE2Present()"), (qmlWTFReportBacktrace(), qmlWTFInvokeCrashHook(), (*(int *)(uintptr_t)0xbbadbeef = 0), __builtin_trap())) : (void)0); | - | ||||||||||||||||||||||||||||||
599 | m_assembler.movsd_mr(address.offset, address.base, address.index, address.scale, dest); | - | ||||||||||||||||||||||||||||||
600 | } never executed: end of block | 0 | ||||||||||||||||||||||||||||||
601 | void loadFloat(BaseIndex address, FPRegisterID dest) | - | ||||||||||||||||||||||||||||||
602 | { | - | ||||||||||||||||||||||||||||||
603 | (!(isSSE2Present()) ? (qmlWTFReportAssertionFailure(__FILE__, 705, __PRETTY_FUNCTION__, "isSSE2Present()"), (qmlWTFReportBacktrace(), qmlWTFInvokeCrashHook(), (*(int *)(uintptr_t)0xbbadbeef = 0), __builtin_trap())) : (void)0); | - | ||||||||||||||||||||||||||||||
604 | m_assembler.movss_mr(address.offset, address.base, address.index, address.scale, dest); | - | ||||||||||||||||||||||||||||||
605 | } never executed: end of block | 0 | ||||||||||||||||||||||||||||||
606 | - | |||||||||||||||||||||||||||||||
607 | void storeDouble(FPRegisterID src, ImplicitAddress address) | - | ||||||||||||||||||||||||||||||
608 | { | - | ||||||||||||||||||||||||||||||
609 | (!(isSSE2Present()) ? (qmlWTFReportAssertionFailure(__FILE__, 711, __PRETTY_FUNCTION__, "isSSE2Present()"), (qmlWTFReportBacktrace(), qmlWTFInvokeCrashHook(), (*(int *)(uintptr_t)0xbbadbeef = 0), __builtin_trap())) : (void)0); | - | ||||||||||||||||||||||||||||||
610 | m_assembler.movsd_rm(src, address.offset, address.base); | - | ||||||||||||||||||||||||||||||
611 | } never executed: end of block | 0 | ||||||||||||||||||||||||||||||
612 | - | |||||||||||||||||||||||||||||||
613 | void storeDouble(FPRegisterID src, BaseIndex address) | - | ||||||||||||||||||||||||||||||
614 | { | - | ||||||||||||||||||||||||||||||
615 | (!(isSSE2Present()) ? (qmlWTFReportAssertionFailure(__FILE__, 717, __PRETTY_FUNCTION__, "isSSE2Present()"), (qmlWTFReportBacktrace(), qmlWTFInvokeCrashHook(), (*(int *)(uintptr_t)0xbbadbeef = 0), __builtin_trap())) : (void)0); | - | ||||||||||||||||||||||||||||||
616 | m_assembler.movsd_rm(src, address.offset, address.base, address.index, address.scale); | - | ||||||||||||||||||||||||||||||
617 | } never executed: end of block | 0 | ||||||||||||||||||||||||||||||
618 | - | |||||||||||||||||||||||||||||||
619 | void storeFloat(FPRegisterID src, BaseIndex address) | - | ||||||||||||||||||||||||||||||
620 | { | - | ||||||||||||||||||||||||||||||
621 | (!(isSSE2Present()) ? (qmlWTFReportAssertionFailure(__FILE__, 723, __PRETTY_FUNCTION__, "isSSE2Present()"), (qmlWTFReportBacktrace(), qmlWTFInvokeCrashHook(), (*(int *)(uintptr_t)0xbbadbeef = 0), __builtin_trap())) : (void)0); | - | ||||||||||||||||||||||||||||||
622 | m_assembler.movss_rm(src, address.offset, address.base, address.index, address.scale); | - | ||||||||||||||||||||||||||||||
623 | } never executed: end of block | 0 | ||||||||||||||||||||||||||||||
624 | - | |||||||||||||||||||||||||||||||
625 | void convertDoubleToFloat(FPRegisterID src, FPRegisterID dst) | - | ||||||||||||||||||||||||||||||
626 | { | - | ||||||||||||||||||||||||||||||
627 | (!(isSSE2Present()) ? (qmlWTFReportAssertionFailure(__FILE__, 729, __PRETTY_FUNCTION__, "isSSE2Present()"), (qmlWTFReportBacktrace(), qmlWTFInvokeCrashHook(), (*(int *)(uintptr_t)0xbbadbeef = 0), __builtin_trap())) : (void)0); | - | ||||||||||||||||||||||||||||||
628 | m_assembler.cvtsd2ss_rr(src, dst); | - | ||||||||||||||||||||||||||||||
629 | } never executed: end of block | 0 | ||||||||||||||||||||||||||||||
630 | - | |||||||||||||||||||||||||||||||
631 | void convertFloatToDouble(FPRegisterID src, FPRegisterID dst) | - | ||||||||||||||||||||||||||||||
632 | { | - | ||||||||||||||||||||||||||||||
633 | (!(isSSE2Present()) ? (qmlWTFReportAssertionFailure(__FILE__, 735, __PRETTY_FUNCTION__, "isSSE2Present()"), (qmlWTFReportBacktrace(), qmlWTFInvokeCrashHook(), (*(int *)(uintptr_t)0xbbadbeef = 0), __builtin_trap())) : (void)0); | - | ||||||||||||||||||||||||||||||
634 | m_assembler.cvtss2sd_rr(src, dst); | - | ||||||||||||||||||||||||||||||
635 | } never executed: end of block | 0 | ||||||||||||||||||||||||||||||
636 | - | |||||||||||||||||||||||||||||||
637 | void addDouble(FPRegisterID src, FPRegisterID dest) | - | ||||||||||||||||||||||||||||||
638 | { | - | ||||||||||||||||||||||||||||||
639 | (!(isSSE2Present()) ? (qmlWTFReportAssertionFailure(__FILE__, 741, __PRETTY_FUNCTION__, "isSSE2Present()"), (qmlWTFReportBacktrace(), qmlWTFInvokeCrashHook(), (*(int *)(uintptr_t)0xbbadbeef = 0), __builtin_trap())) : (void)0); | - | ||||||||||||||||||||||||||||||
640 | m_assembler.addsd_rr(src, dest); | - | ||||||||||||||||||||||||||||||
641 | } never executed: end of block | 0 | ||||||||||||||||||||||||||||||
642 | - | |||||||||||||||||||||||||||||||
643 | void addDouble(FPRegisterID op1, FPRegisterID op2, FPRegisterID dest) | - | ||||||||||||||||||||||||||||||
644 | { | - | ||||||||||||||||||||||||||||||
645 | (!(isSSE2Present()) ? (qmlWTFReportAssertionFailure(__FILE__, 747, __PRETTY_FUNCTION__, "isSSE2Present()"), (qmlWTFReportBacktrace(), qmlWTFInvokeCrashHook(), (*(int *)(uintptr_t)0xbbadbeef = 0), __builtin_trap())) : (void)0); | - | ||||||||||||||||||||||||||||||
646 | if (op1 == dest
| 0 | ||||||||||||||||||||||||||||||
647 | addDouble(op2, dest); never executed: addDouble(op2, dest); | 0 | ||||||||||||||||||||||||||||||
648 | else { | - | ||||||||||||||||||||||||||||||
649 | moveDouble(op2, dest); | - | ||||||||||||||||||||||||||||||
650 | addDouble(op1, dest); | - | ||||||||||||||||||||||||||||||
651 | } never executed: end of block | 0 | ||||||||||||||||||||||||||||||
652 | } | - | ||||||||||||||||||||||||||||||
653 | - | |||||||||||||||||||||||||||||||
654 | void addDouble(Address src, FPRegisterID dest) | - | ||||||||||||||||||||||||||||||
655 | { | - | ||||||||||||||||||||||||||||||
656 | (!(isSSE2Present()) ? (qmlWTFReportAssertionFailure(__FILE__, 758, __PRETTY_FUNCTION__, "isSSE2Present()"), (qmlWTFReportBacktrace(), qmlWTFInvokeCrashHook(), (*(int *)(uintptr_t)0xbbadbeef = 0), __builtin_trap())) : (void)0); | - | ||||||||||||||||||||||||||||||
657 | m_assembler.addsd_mr(src.offset, src.base, dest); | - | ||||||||||||||||||||||||||||||
658 | } never executed: end of block | 0 | ||||||||||||||||||||||||||||||
659 | - | |||||||||||||||||||||||||||||||
660 | void divDouble(FPRegisterID src, FPRegisterID dest) | - | ||||||||||||||||||||||||||||||
661 | { | - | ||||||||||||||||||||||||||||||
662 | (!(isSSE2Present()) ? (qmlWTFReportAssertionFailure(__FILE__, 764, __PRETTY_FUNCTION__, "isSSE2Present()"), (qmlWTFReportBacktrace(), qmlWTFInvokeCrashHook(), (*(int *)(uintptr_t)0xbbadbeef = 0), __builtin_trap())) : (void)0); | - | ||||||||||||||||||||||||||||||
663 | m_assembler.divsd_rr(src, dest); | - | ||||||||||||||||||||||||||||||
664 | } never executed: end of block | 0 | ||||||||||||||||||||||||||||||
665 | - | |||||||||||||||||||||||||||||||
666 | void divDouble(FPRegisterID op1, FPRegisterID op2, FPRegisterID dest) | - | ||||||||||||||||||||||||||||||
667 | { | - | ||||||||||||||||||||||||||||||
668 | - | |||||||||||||||||||||||||||||||
669 | (!(op1 == dest || op2 != dest) ? (qmlWTFReportAssertionFailure(__FILE__, 771, __PRETTY_FUNCTION__, "op1 == dest || op2 != dest"), (qmlWTFReportBacktrace(), qmlWTFInvokeCrashHook(), (*(int *)(uintptr_t)0xbbadbeef = 0), __builtin_trap())) : (void)0); | - | ||||||||||||||||||||||||||||||
670 | - | |||||||||||||||||||||||||||||||
671 | moveDouble(op1, dest); | - | ||||||||||||||||||||||||||||||
672 | divDouble(op2, dest); | - | ||||||||||||||||||||||||||||||
673 | } never executed: end of block | 0 | ||||||||||||||||||||||||||||||
674 | - | |||||||||||||||||||||||||||||||
675 | void divDouble(Address src, FPRegisterID dest) | - | ||||||||||||||||||||||||||||||
676 | { | - | ||||||||||||||||||||||||||||||
677 | (!(isSSE2Present()) ? (qmlWTFReportAssertionFailure(__FILE__, 779, __PRETTY_FUNCTION__, "isSSE2Present()"), (qmlWTFReportBacktrace(), qmlWTFInvokeCrashHook(), (*(int *)(uintptr_t)0xbbadbeef = 0), __builtin_trap())) : (void)0); | - | ||||||||||||||||||||||||||||||
678 | m_assembler.divsd_mr(src.offset, src.base, dest); | - | ||||||||||||||||||||||||||||||
679 | } never executed: end of block | 0 | ||||||||||||||||||||||||||||||
680 | - | |||||||||||||||||||||||||||||||
681 | void subDouble(FPRegisterID src, FPRegisterID dest) | - | ||||||||||||||||||||||||||||||
682 | { | - | ||||||||||||||||||||||||||||||
683 | (!(isSSE2Present()) ? (qmlWTFReportAssertionFailure(__FILE__, 785, __PRETTY_FUNCTION__, "isSSE2Present()"), (qmlWTFReportBacktrace(), qmlWTFInvokeCrashHook(), (*(int *)(uintptr_t)0xbbadbeef = 0), __builtin_trap())) : (void)0); | - | ||||||||||||||||||||||||||||||
684 | m_assembler.subsd_rr(src, dest); | - | ||||||||||||||||||||||||||||||
685 | } never executed: end of block | 0 | ||||||||||||||||||||||||||||||
686 | - | |||||||||||||||||||||||||||||||
687 | void subDouble(FPRegisterID op1, FPRegisterID op2, FPRegisterID dest) | - | ||||||||||||||||||||||||||||||
688 | { | - | ||||||||||||||||||||||||||||||
689 | - | |||||||||||||||||||||||||||||||
690 | (!(op1 == dest || op2 != dest) ? (qmlWTFReportAssertionFailure(__FILE__, 792, __PRETTY_FUNCTION__, "op1 == dest || op2 != dest"), (qmlWTFReportBacktrace(), qmlWTFInvokeCrashHook(), (*(int *)(uintptr_t)0xbbadbeef = 0), __builtin_trap())) : (void)0); | - | ||||||||||||||||||||||||||||||
691 | - | |||||||||||||||||||||||||||||||
692 | moveDouble(op1, dest); | - | ||||||||||||||||||||||||||||||
693 | subDouble(op2, dest); | - | ||||||||||||||||||||||||||||||
694 | } never executed: end of block | 0 | ||||||||||||||||||||||||||||||
695 | - | |||||||||||||||||||||||||||||||
696 | void subDouble(Address src, FPRegisterID dest) | - | ||||||||||||||||||||||||||||||
697 | { | - | ||||||||||||||||||||||||||||||
698 | (!(isSSE2Present()) ? (qmlWTFReportAssertionFailure(__FILE__, 800, __PRETTY_FUNCTION__, "isSSE2Present()"), (qmlWTFReportBacktrace(), qmlWTFInvokeCrashHook(), (*(int *)(uintptr_t)0xbbadbeef = 0), __builtin_trap())) : (void)0); | - | ||||||||||||||||||||||||||||||
699 | m_assembler.subsd_mr(src.offset, src.base, dest); | - | ||||||||||||||||||||||||||||||
700 | } never executed: end of block | 0 | ||||||||||||||||||||||||||||||
701 | - | |||||||||||||||||||||||||||||||
702 | void mulDouble(FPRegisterID src, FPRegisterID dest) | - | ||||||||||||||||||||||||||||||
703 | { | - | ||||||||||||||||||||||||||||||
704 | (!(isSSE2Present()) ? (qmlWTFReportAssertionFailure(__FILE__, 806, __PRETTY_FUNCTION__, "isSSE2Present()"), (qmlWTFReportBacktrace(), qmlWTFInvokeCrashHook(), (*(int *)(uintptr_t)0xbbadbeef = 0), __builtin_trap())) : (void)0); | - | ||||||||||||||||||||||||||||||
705 | m_assembler.mulsd_rr(src, dest); | - | ||||||||||||||||||||||||||||||
706 | } never executed: end of block | 0 | ||||||||||||||||||||||||||||||
707 | - | |||||||||||||||||||||||||||||||
708 | void mulDouble(FPRegisterID op1, FPRegisterID op2, FPRegisterID dest) | - | ||||||||||||||||||||||||||||||
709 | { | - | ||||||||||||||||||||||||||||||
710 | (!(isSSE2Present()) ? (qmlWTFReportAssertionFailure(__FILE__, 812, __PRETTY_FUNCTION__, "isSSE2Present()"), (qmlWTFReportBacktrace(), qmlWTFInvokeCrashHook(), (*(int *)(uintptr_t)0xbbadbeef = 0), __builtin_trap())) : (void)0); | - | ||||||||||||||||||||||||||||||
711 | if (op1 == dest
| 0 | ||||||||||||||||||||||||||||||
712 | mulDouble(op2, dest); never executed: mulDouble(op2, dest); | 0 | ||||||||||||||||||||||||||||||
713 | else { | - | ||||||||||||||||||||||||||||||
714 | moveDouble(op2, dest); | - | ||||||||||||||||||||||||||||||
715 | mulDouble(op1, dest); | - | ||||||||||||||||||||||||||||||
716 | } never executed: end of block | 0 | ||||||||||||||||||||||||||||||
717 | } | - | ||||||||||||||||||||||||||||||
718 | - | |||||||||||||||||||||||||||||||
719 | void mulDouble(Address src, FPRegisterID dest) | - | ||||||||||||||||||||||||||||||
720 | { | - | ||||||||||||||||||||||||||||||
721 | (!(isSSE2Present()) ? (qmlWTFReportAssertionFailure(__FILE__, 823, __PRETTY_FUNCTION__, "isSSE2Present()"), (qmlWTFReportBacktrace(), qmlWTFInvokeCrashHook(), (*(int *)(uintptr_t)0xbbadbeef = 0), __builtin_trap())) : (void)0); | - | ||||||||||||||||||||||||||||||
722 | m_assembler.mulsd_mr(src.offset, src.base, dest); | - | ||||||||||||||||||||||||||||||
723 | } never executed: end of block | 0 | ||||||||||||||||||||||||||||||
724 | - | |||||||||||||||||||||||||||||||
725 | void convertInt32ToDouble(RegisterID src, FPRegisterID dest) | - | ||||||||||||||||||||||||||||||
726 | { | - | ||||||||||||||||||||||||||||||
727 | (!(isSSE2Present()) ? (qmlWTFReportAssertionFailure(__FILE__, 829, __PRETTY_FUNCTION__, "isSSE2Present()"), (qmlWTFReportBacktrace(), qmlWTFInvokeCrashHook(), (*(int *)(uintptr_t)0xbbadbeef = 0), __builtin_trap())) : (void)0); | - | ||||||||||||||||||||||||||||||
728 | m_assembler.cvtsi2sd_rr(src, dest); | - | ||||||||||||||||||||||||||||||
729 | } never executed: end of block | 0 | ||||||||||||||||||||||||||||||
730 | - | |||||||||||||||||||||||||||||||
731 | void convertInt32ToDouble(Address src, FPRegisterID dest) | - | ||||||||||||||||||||||||||||||
732 | { | - | ||||||||||||||||||||||||||||||
733 | (!(isSSE2Present()) ? (qmlWTFReportAssertionFailure(__FILE__, 835, __PRETTY_FUNCTION__, "isSSE2Present()"), (qmlWTFReportBacktrace(), qmlWTFInvokeCrashHook(), (*(int *)(uintptr_t)0xbbadbeef = 0), __builtin_trap())) : (void)0); | - | ||||||||||||||||||||||||||||||
734 | m_assembler.cvtsi2sd_mr(src.offset, src.base, dest); | - | ||||||||||||||||||||||||||||||
735 | } never executed: end of block | 0 | ||||||||||||||||||||||||||||||
736 | - | |||||||||||||||||||||||||||||||
737 | Jump branchDouble(DoubleCondition cond, FPRegisterID left, FPRegisterID right) | - | ||||||||||||||||||||||||||||||
738 | { | - | ||||||||||||||||||||||||||||||
739 | (!(isSSE2Present()) ? (qmlWTFReportAssertionFailure(__FILE__, 841, __PRETTY_FUNCTION__, "isSSE2Present()"), (qmlWTFReportBacktrace(), qmlWTFInvokeCrashHook(), (*(int *)(uintptr_t)0xbbadbeef = 0), __builtin_trap())) : (void)0); | - | ||||||||||||||||||||||||||||||
740 | - | |||||||||||||||||||||||||||||||
741 | if (cond & DoubleConditionBitInvert
| 0 | ||||||||||||||||||||||||||||||
742 | m_assembler.ucomisd_rr(left, right); never executed: m_assembler.ucomisd_rr(left, right); | 0 | ||||||||||||||||||||||||||||||
743 | else | - | ||||||||||||||||||||||||||||||
744 | m_assembler.ucomisd_rr(right, left); never executed: m_assembler.ucomisd_rr(right, left); | 0 | ||||||||||||||||||||||||||||||
745 | - | |||||||||||||||||||||||||||||||
746 | if (cond == DoubleEqual
| 0 | ||||||||||||||||||||||||||||||
747 | if (left == right
| 0 | ||||||||||||||||||||||||||||||
748 | return never executed: Jump(m_assembler.jnp());return Jump(m_assembler.jnp()); never executed: return Jump(m_assembler.jnp()); | 0 | ||||||||||||||||||||||||||||||
749 | Jump isUnordered(m_assembler.jp()); | - | ||||||||||||||||||||||||||||||
750 | Jump result = Jump(m_assembler.je()); | - | ||||||||||||||||||||||||||||||
751 | isUnordered.link(this); | - | ||||||||||||||||||||||||||||||
752 | return never executed: result;return result; never executed: return result; | 0 | ||||||||||||||||||||||||||||||
753 | } else if (cond == DoubleNotEqualOrUnordered
| 0 | ||||||||||||||||||||||||||||||
754 | if (left == right
| 0 | ||||||||||||||||||||||||||||||
755 | return never executed: Jump(m_assembler.jp());return Jump(m_assembler.jp()); never executed: return Jump(m_assembler.jp()); | 0 | ||||||||||||||||||||||||||||||
756 | Jump isUnordered(m_assembler.jp()); | - | ||||||||||||||||||||||||||||||
757 | Jump isEqual(m_assembler.je()); | - | ||||||||||||||||||||||||||||||
758 | isUnordered.link(this); | - | ||||||||||||||||||||||||||||||
759 | Jump result = jump(); | - | ||||||||||||||||||||||||||||||
760 | isEqual.link(this); | - | ||||||||||||||||||||||||||||||
761 | return never executed: result;return result; never executed: return result; | 0 | ||||||||||||||||||||||||||||||
762 | } | - | ||||||||||||||||||||||||||||||
763 | - | |||||||||||||||||||||||||||||||
764 | (!(!(cond & DoubleConditionBitSpecial)) ? (qmlWTFReportAssertionFailure(__FILE__, 866, __PRETTY_FUNCTION__, "!(cond & DoubleConditionBitSpecial)"), (qmlWTFReportBacktrace(), qmlWTFInvokeCrashHook(), (*(int *)(uintptr_t)0xbbadbeef = 0), __builtin_trap())) : (void)0); | - | ||||||||||||||||||||||||||||||
765 | return never executed: Jump(m_assembler.jCC(static_cast<X86Assembler::Condition>(cond & ~DoubleConditionBits)));return Jump(m_assembler.jCC(static_cast<X86Assembler::Condition>(cond & ~DoubleConditionBits))); never executed: return Jump(m_assembler.jCC(static_cast<X86Assembler::Condition>(cond & ~DoubleConditionBits))); | 0 | ||||||||||||||||||||||||||||||
766 | } | - | ||||||||||||||||||||||||||||||
767 | - | |||||||||||||||||||||||||||||||
768 | - | |||||||||||||||||||||||||||||||
769 | - | |||||||||||||||||||||||||||||||
770 | - | |||||||||||||||||||||||||||||||
771 | - | |||||||||||||||||||||||||||||||
772 | enum BranchTruncateType { BranchIfTruncateFailed, BranchIfTruncateSuccessful }; | - | ||||||||||||||||||||||||||||||
773 | Jump branchTruncateDoubleToInt32(FPRegisterID src, RegisterID dest, BranchTruncateType branchType = BranchIfTruncateFailed) | - | ||||||||||||||||||||||||||||||
774 | { | - | ||||||||||||||||||||||||||||||
775 | (!(isSSE2Present()) ? (qmlWTFReportAssertionFailure(__FILE__, 877, __PRETTY_FUNCTION__, "isSSE2Present()"), (qmlWTFReportBacktrace(), qmlWTFInvokeCrashHook(), (*(int *)(uintptr_t)0xbbadbeef = 0), __builtin_trap())) : (void)0); | - | ||||||||||||||||||||||||||||||
776 | m_assembler.cvttsd2si_rr(src, dest); | - | ||||||||||||||||||||||||||||||
777 | return never executed: branch32(branchType ? NotEqual : Equal, dest, TrustedImm32(0x80000000));return branch32(branchType ? NotEqual : Equal, dest, TrustedImm32(0x80000000)); never executed: return branch32(branchType ? NotEqual : Equal, dest, TrustedImm32(0x80000000)); | 0 | ||||||||||||||||||||||||||||||
778 | } | - | ||||||||||||||||||||||||||||||
779 | - | |||||||||||||||||||||||||||||||
780 | Jump branchTruncateDoubleToUint32(FPRegisterID src, RegisterID dest, BranchTruncateType branchType = BranchIfTruncateFailed) | - | ||||||||||||||||||||||||||||||
781 | { | - | ||||||||||||||||||||||||||||||
782 | (!(isSSE2Present()) ? (qmlWTFReportAssertionFailure(__FILE__, 884, __PRETTY_FUNCTION__, "isSSE2Present()"), (qmlWTFReportBacktrace(), qmlWTFInvokeCrashHook(), (*(int *)(uintptr_t)0xbbadbeef = 0), __builtin_trap())) : (void)0); | - | ||||||||||||||||||||||||||||||
783 | m_assembler.cvttsd2si_rr(src, dest); | - | ||||||||||||||||||||||||||||||
784 | return never executed: branch32(branchType ? GreaterThanOrEqual : LessThan, dest, TrustedImm32(0));return branch32(branchType ? GreaterThanOrEqual : LessThan, dest, TrustedImm32(0)); never executed: return branch32(branchType ? GreaterThanOrEqual : LessThan, dest, TrustedImm32(0)); | 0 | ||||||||||||||||||||||||||||||
785 | } | - | ||||||||||||||||||||||||||||||
786 | - | |||||||||||||||||||||||||||||||
787 | void truncateDoubleToInt32(FPRegisterID src, RegisterID dest) | - | ||||||||||||||||||||||||||||||
788 | { | - | ||||||||||||||||||||||||||||||
789 | (!(isSSE2Present()) ? (qmlWTFReportAssertionFailure(__FILE__, 891, __PRETTY_FUNCTION__, "isSSE2Present()"), (qmlWTFReportBacktrace(), qmlWTFInvokeCrashHook(), (*(int *)(uintptr_t)0xbbadbeef = 0), __builtin_trap())) : (void)0); | - | ||||||||||||||||||||||||||||||
790 | m_assembler.cvttsd2si_rr(src, dest); | - | ||||||||||||||||||||||||||||||
791 | } never executed: end of block | 0 | ||||||||||||||||||||||||||||||
792 | - | |||||||||||||||||||||||||||||||
793 | - | |||||||||||||||||||||||||||||||
794 | void truncateDoubleToUint32(FPRegisterID src, RegisterID dest) | - | ||||||||||||||||||||||||||||||
795 | { | - | ||||||||||||||||||||||||||||||
796 | (!(isSSE2Present()) ? (qmlWTFReportAssertionFailure(__FILE__, 898, __PRETTY_FUNCTION__, "isSSE2Present()"), (qmlWTFReportBacktrace(), qmlWTFInvokeCrashHook(), (*(int *)(uintptr_t)0xbbadbeef = 0), __builtin_trap())) : (void)0); | - | ||||||||||||||||||||||||||||||
797 | m_assembler.cvttsd2siq_rr(src, dest); | - | ||||||||||||||||||||||||||||||
798 | } never executed: end of block | 0 | ||||||||||||||||||||||||||||||
799 | - | |||||||||||||||||||||||||||||||
800 | - | |||||||||||||||||||||||||||||||
801 | - | |||||||||||||||||||||||||||||||
802 | - | |||||||||||||||||||||||||||||||
803 | - | |||||||||||||||||||||||||||||||
804 | - | |||||||||||||||||||||||||||||||
805 | void branchConvertDoubleToInt32(FPRegisterID src, RegisterID dest, JumpList& failureCases, FPRegisterID fpTemp) | - | ||||||||||||||||||||||||||||||
806 | { | - | ||||||||||||||||||||||||||||||
807 | (!(isSSE2Present()) ? (qmlWTFReportAssertionFailure(__FILE__, 909, __PRETTY_FUNCTION__, "isSSE2Present()"), (qmlWTFReportBacktrace(), qmlWTFInvokeCrashHook(), (*(int *)(uintptr_t)0xbbadbeef = 0), __builtin_trap())) : (void)0); | - | ||||||||||||||||||||||||||||||
808 | m_assembler.cvttsd2si_rr(src, dest); | - | ||||||||||||||||||||||||||||||
809 | - | |||||||||||||||||||||||||||||||
810 | - | |||||||||||||||||||||||||||||||
811 | failureCases.append(branchTest32(Zero, dest)); | - | ||||||||||||||||||||||||||||||
812 | - | |||||||||||||||||||||||||||||||
813 | - | |||||||||||||||||||||||||||||||
814 | convertInt32ToDouble(dest, fpTemp); | - | ||||||||||||||||||||||||||||||
815 | m_assembler.ucomisd_rr(fpTemp, src); | - | ||||||||||||||||||||||||||||||
816 | failureCases.append(m_assembler.jp()); | - | ||||||||||||||||||||||||||||||
817 | failureCases.append(m_assembler.jne()); | - | ||||||||||||||||||||||||||||||
818 | } never executed: end of block | 0 | ||||||||||||||||||||||||||||||
819 | - | |||||||||||||||||||||||||||||||
820 | Jump branchDoubleNonZero(FPRegisterID reg, FPRegisterID scratch) | - | ||||||||||||||||||||||||||||||
821 | { | - | ||||||||||||||||||||||||||||||
822 | (!(isSSE2Present()) ? (qmlWTFReportAssertionFailure(__FILE__, 924, __PRETTY_FUNCTION__, "isSSE2Present()"), (qmlWTFReportBacktrace(), qmlWTFInvokeCrashHook(), (*(int *)(uintptr_t)0xbbadbeef = 0), __builtin_trap())) : (void)0); | - | ||||||||||||||||||||||||||||||
823 | m_assembler.xorpd_rr(scratch, scratch); | - | ||||||||||||||||||||||||||||||
824 | return never executed: branchDouble(DoubleNotEqual, reg, scratch);return branchDouble(DoubleNotEqual, reg, scratch); never executed: return branchDouble(DoubleNotEqual, reg, scratch); | 0 | ||||||||||||||||||||||||||||||
825 | } | - | ||||||||||||||||||||||||||||||
826 | - | |||||||||||||||||||||||||||||||
827 | Jump branchDoubleZeroOrNaN(FPRegisterID reg, FPRegisterID scratch) | - | ||||||||||||||||||||||||||||||
828 | { | - | ||||||||||||||||||||||||||||||
829 | (!(isSSE2Present()) ? (qmlWTFReportAssertionFailure(__FILE__, 931, __PRETTY_FUNCTION__, "isSSE2Present()"), (qmlWTFReportBacktrace(), qmlWTFInvokeCrashHook(), (*(int *)(uintptr_t)0xbbadbeef = 0), __builtin_trap())) : (void)0); | - | ||||||||||||||||||||||||||||||
830 | m_assembler.xorpd_rr(scratch, scratch); | - | ||||||||||||||||||||||||||||||
831 | return never executed: branchDouble(DoubleEqualOrUnordered, reg, scratch);return branchDouble(DoubleEqualOrUnordered, reg, scratch); never executed: return branchDouble(DoubleEqualOrUnordered, reg, scratch); | 0 | ||||||||||||||||||||||||||||||
832 | } | - | ||||||||||||||||||||||||||||||
833 | - | |||||||||||||||||||||||||||||||
834 | void lshiftPacked(TrustedImm32 imm, XMMRegisterID reg) | - | ||||||||||||||||||||||||||||||
835 | { | - | ||||||||||||||||||||||||||||||
836 | (!(isSSE2Present()) ? (qmlWTFReportAssertionFailure(__FILE__, 938, __PRETTY_FUNCTION__, "isSSE2Present()"), (qmlWTFReportBacktrace(), qmlWTFInvokeCrashHook(), (*(int *)(uintptr_t)0xbbadbeef = 0), __builtin_trap())) : (void)0); | - | ||||||||||||||||||||||||||||||
837 | m_assembler.psllq_i8r(imm.m_value, reg); | - | ||||||||||||||||||||||||||||||
838 | } never executed: end of block | 0 | ||||||||||||||||||||||||||||||
839 | - | |||||||||||||||||||||||||||||||
840 | void rshiftPacked(TrustedImm32 imm, XMMRegisterID reg) | - | ||||||||||||||||||||||||||||||
841 | { | - | ||||||||||||||||||||||||||||||
842 | (!(isSSE2Present()) ? (qmlWTFReportAssertionFailure(__FILE__, 944, __PRETTY_FUNCTION__, "isSSE2Present()"), (qmlWTFReportBacktrace(), qmlWTFInvokeCrashHook(), (*(int *)(uintptr_t)0xbbadbeef = 0), __builtin_trap())) : (void)0); | - | ||||||||||||||||||||||||||||||
843 | m_assembler.psrlq_i8r(imm.m_value, reg); | - | ||||||||||||||||||||||||||||||
844 | } never executed: end of block | 0 | ||||||||||||||||||||||||||||||
845 | - | |||||||||||||||||||||||||||||||
846 | void orPacked(XMMRegisterID src, XMMRegisterID dst) | - | ||||||||||||||||||||||||||||||
847 | { | - | ||||||||||||||||||||||||||||||
848 | (!(isSSE2Present()) ? (qmlWTFReportAssertionFailure(__FILE__, 950, __PRETTY_FUNCTION__, "isSSE2Present()"), (qmlWTFReportBacktrace(), qmlWTFInvokeCrashHook(), (*(int *)(uintptr_t)0xbbadbeef = 0), __builtin_trap())) : (void)0); | - | ||||||||||||||||||||||||||||||
849 | m_assembler.por_rr(src, dst); | - | ||||||||||||||||||||||||||||||
850 | } never executed: end of block | 0 | ||||||||||||||||||||||||||||||
851 | - | |||||||||||||||||||||||||||||||
852 | void moveInt32ToPacked(RegisterID src, XMMRegisterID dst) | - | ||||||||||||||||||||||||||||||
853 | { | - | ||||||||||||||||||||||||||||||
854 | (!(isSSE2Present()) ? (qmlWTFReportAssertionFailure(__FILE__, 956, __PRETTY_FUNCTION__, "isSSE2Present()"), (qmlWTFReportBacktrace(), qmlWTFInvokeCrashHook(), (*(int *)(uintptr_t)0xbbadbeef = 0), __builtin_trap())) : (void)0); | - | ||||||||||||||||||||||||||||||
855 | m_assembler.movd_rr(src, dst); | - | ||||||||||||||||||||||||||||||
856 | } never executed: end of block | 0 | ||||||||||||||||||||||||||||||
857 | - | |||||||||||||||||||||||||||||||
858 | void movePackedToInt32(XMMRegisterID src, RegisterID dst) | - | ||||||||||||||||||||||||||||||
859 | { | - | ||||||||||||||||||||||||||||||
860 | (!(isSSE2Present()) ? (qmlWTFReportAssertionFailure(__FILE__, 962, __PRETTY_FUNCTION__, "isSSE2Present()"), (qmlWTFReportBacktrace(), qmlWTFInvokeCrashHook(), (*(int *)(uintptr_t)0xbbadbeef = 0), __builtin_trap())) : (void)0); | - | ||||||||||||||||||||||||||||||
861 | m_assembler.movd_rr(src, dst); | - | ||||||||||||||||||||||||||||||
862 | } never executed: end of block | 0 | ||||||||||||||||||||||||||||||
863 | void pop(RegisterID dest) | - | ||||||||||||||||||||||||||||||
864 | { | - | ||||||||||||||||||||||||||||||
865 | m_assembler.pop_r(dest); | - | ||||||||||||||||||||||||||||||
866 | } executed 6960026 times by 153 tests: end of block Executed by:
| 6960026 | ||||||||||||||||||||||||||||||
867 | - | |||||||||||||||||||||||||||||||
868 | void push(RegisterID src) | - | ||||||||||||||||||||||||||||||
869 | { | - | ||||||||||||||||||||||||||||||
870 | m_assembler.push_r(src); | - | ||||||||||||||||||||||||||||||
871 | } executed 2368921 times by 153 tests: end of block Executed by:
| 2368921 | ||||||||||||||||||||||||||||||
872 | - | |||||||||||||||||||||||||||||||
873 | void push(Address address) | - | ||||||||||||||||||||||||||||||
874 | { | - | ||||||||||||||||||||||||||||||
875 | m_assembler.push_m(address.offset, address.base); | - | ||||||||||||||||||||||||||||||
876 | } never executed: end of block | 0 | ||||||||||||||||||||||||||||||
877 | - | |||||||||||||||||||||||||||||||
878 | void push(TrustedImm32 imm) | - | ||||||||||||||||||||||||||||||
879 | { | - | ||||||||||||||||||||||||||||||
880 | m_assembler.push_i32(imm.m_value); | - | ||||||||||||||||||||||||||||||
881 | } never executed: end of block | 0 | ||||||||||||||||||||||||||||||
882 | - | |||||||||||||||||||||||||||||||
883 | - | |||||||||||||||||||||||||||||||
884 | - | |||||||||||||||||||||||||||||||
885 | - | |||||||||||||||||||||||||||||||
886 | - | |||||||||||||||||||||||||||||||
887 | - | |||||||||||||||||||||||||||||||
888 | void move(TrustedImm32 imm, RegisterID dest) | - | ||||||||||||||||||||||||||||||
889 | { | - | ||||||||||||||||||||||||||||||
890 | - | |||||||||||||||||||||||||||||||
891 | - | |||||||||||||||||||||||||||||||
892 | if (!imm.m_value
| 50956-2303896 | ||||||||||||||||||||||||||||||
893 | m_assembler.xorl_rr(dest, dest); executed 2303982 times by 153 tests: m_assembler.xorl_rr(dest, dest); Executed by:
| 2303982 | ||||||||||||||||||||||||||||||
894 | else | - | ||||||||||||||||||||||||||||||
895 | m_assembler.movl_i32r(imm.m_value, dest); executed 50956 times by 63 tests: m_assembler.movl_i32r(imm.m_value, dest); Executed by:
| 50956 | ||||||||||||||||||||||||||||||
896 | } | - | ||||||||||||||||||||||||||||||
897 | - | |||||||||||||||||||||||||||||||
898 | - | |||||||||||||||||||||||||||||||
899 | void move(RegisterID src, RegisterID dest) | - | ||||||||||||||||||||||||||||||
900 | { | - | ||||||||||||||||||||||||||||||
901 | - | |||||||||||||||||||||||||||||||
902 | - | |||||||||||||||||||||||||||||||
903 | if (src != dest
| 77464-3594558 | ||||||||||||||||||||||||||||||
904 | m_assembler.movq_rr(src, dest); executed 3594619 times by 153 tests: m_assembler.movq_rr(src, dest); Executed by:
| 3594619 | ||||||||||||||||||||||||||||||
905 | } executed 3674131 times by 153 tests: end of block Executed by:
| 3674131 | ||||||||||||||||||||||||||||||
906 | - | |||||||||||||||||||||||||||||||
907 | void move(TrustedImmPtr imm, RegisterID dest) | - | ||||||||||||||||||||||||||||||
908 | { | - | ||||||||||||||||||||||||||||||
909 | m_assembler.movq_i64r(imm.asIntptr(), dest); | - | ||||||||||||||||||||||||||||||
910 | } executed 2401047 times by 153 tests: end of block Executed by:
| 2401047 | ||||||||||||||||||||||||||||||
911 | - | |||||||||||||||||||||||||||||||
912 | void move(TrustedImm64 imm, RegisterID dest) | - | ||||||||||||||||||||||||||||||
913 | { | - | ||||||||||||||||||||||||||||||
914 | m_assembler.movq_i64r(imm.m_value, dest); | - | ||||||||||||||||||||||||||||||
915 | } executed 27352 times by 64 tests: end of block Executed by:
| 27352 | ||||||||||||||||||||||||||||||
916 | - | |||||||||||||||||||||||||||||||
917 | void swap(RegisterID reg1, RegisterID reg2) | - | ||||||||||||||||||||||||||||||
918 | { | - | ||||||||||||||||||||||||||||||
919 | if (reg1 != reg2
| 0 | ||||||||||||||||||||||||||||||
920 | m_assembler.xchgq_rr(reg1, reg2); never executed: m_assembler.xchgq_rr(reg1, reg2); | 0 | ||||||||||||||||||||||||||||||
921 | } never executed: end of block | 0 | ||||||||||||||||||||||||||||||
922 | - | |||||||||||||||||||||||||||||||
923 | void signExtend32ToPtr(RegisterID src, RegisterID dest) | - | ||||||||||||||||||||||||||||||
924 | { | - | ||||||||||||||||||||||||||||||
925 | m_assembler.movsxd_rr(src, dest); | - | ||||||||||||||||||||||||||||||
926 | } never executed: end of block | 0 | ||||||||||||||||||||||||||||||
927 | - | |||||||||||||||||||||||||||||||
928 | void zeroExtend32ToPtr(RegisterID src, RegisterID dest) | - | ||||||||||||||||||||||||||||||
929 | { | - | ||||||||||||||||||||||||||||||
930 | m_assembler.movl_rr(src, dest); | - | ||||||||||||||||||||||||||||||
931 | } executed 2299557 times by 153 tests: end of block Executed by:
| 2299557 | ||||||||||||||||||||||||||||||
932 | public: | - | ||||||||||||||||||||||||||||||
933 | Jump branch8(RelationalCondition cond, Address left, TrustedImm32 right) | - | ||||||||||||||||||||||||||||||
934 | { | - | ||||||||||||||||||||||||||||||
935 | m_assembler.cmpb_im(right.m_value, left.offset, left.base); | - | ||||||||||||||||||||||||||||||
936 | return never executed: Jump(m_assembler.jCC(x86Condition(cond)));return Jump(m_assembler.jCC(x86Condition(cond))); never executed: return Jump(m_assembler.jCC(x86Condition(cond))); | 0 | ||||||||||||||||||||||||||||||
937 | } | - | ||||||||||||||||||||||||||||||
938 | - | |||||||||||||||||||||||||||||||
939 | Jump branch32(RelationalCondition cond, RegisterID left, RegisterID right) | - | ||||||||||||||||||||||||||||||
940 | { | - | ||||||||||||||||||||||||||||||
941 | m_assembler.cmpl_rr(right, left); | - | ||||||||||||||||||||||||||||||
942 | return executed 4602882 times by 153 tests: Jump(m_assembler.jCC(x86Condition(cond)));return Jump(m_assembler.jCC(x86Condition(cond))); Executed by:
executed 4602882 times by 153 tests: return Jump(m_assembler.jCC(x86Condition(cond))); Executed by:
| 4602882 | ||||||||||||||||||||||||||||||
943 | } | - | ||||||||||||||||||||||||||||||
944 | - | |||||||||||||||||||||||||||||||
945 | Jump branch32(RelationalCondition cond, RegisterID left, TrustedImm32 right) | - | ||||||||||||||||||||||||||||||
946 | { | - | ||||||||||||||||||||||||||||||
947 | if (((
| 7528-1629741 | ||||||||||||||||||||||||||||||
948 | m_assembler.testl_rr(left, left); executed 7528 times by 39 tests: m_assembler.testl_rr(left, left); Executed by:
| 7528 | ||||||||||||||||||||||||||||||
949 | else | - | ||||||||||||||||||||||||||||||
950 | m_assembler.cmpl_ir(right.m_value, left); executed 1648520 times by 52 tests: m_assembler.cmpl_ir(right.m_value, left); Executed by:
| 1648520 | ||||||||||||||||||||||||||||||
951 | return executed 1655521 times by 52 tests: Jump(m_assembler.jCC(x86Condition(cond)));return Jump(m_assembler.jCC(x86Condition(cond))); Executed by:
executed 1655521 times by 52 tests: return Jump(m_assembler.jCC(x86Condition(cond))); Executed by:
| 1655521 | ||||||||||||||||||||||||||||||
952 | } | - | ||||||||||||||||||||||||||||||
953 | - | |||||||||||||||||||||||||||||||
954 | Jump branch32(RelationalCondition cond, RegisterID left, Address right) | - | ||||||||||||||||||||||||||||||
955 | { | - | ||||||||||||||||||||||||||||||
956 | m_assembler.cmpl_mr(right.offset, right.base, left); | - | ||||||||||||||||||||||||||||||
957 | return executed 11 times by 1 test: Jump(m_assembler.jCC(x86Condition(cond)));return Jump(m_assembler.jCC(x86Condition(cond))); Executed by:
executed 11 times by 1 test: return Jump(m_assembler.jCC(x86Condition(cond))); Executed by:
| 11 | ||||||||||||||||||||||||||||||
958 | } | - | ||||||||||||||||||||||||||||||
959 | - | |||||||||||||||||||||||||||||||
960 | Jump branch32(RelationalCondition cond, Address left, RegisterID right) | - | ||||||||||||||||||||||||||||||
961 | { | - | ||||||||||||||||||||||||||||||
962 | m_assembler.cmpl_rm(right, left.offset, left.base); | - | ||||||||||||||||||||||||||||||
963 | return never executed: Jump(m_assembler.jCC(x86Condition(cond)));return Jump(m_assembler.jCC(x86Condition(cond))); never executed: return Jump(m_assembler.jCC(x86Condition(cond))); | 0 | ||||||||||||||||||||||||||||||
964 | } | - | ||||||||||||||||||||||||||||||
965 | - | |||||||||||||||||||||||||||||||
966 | Jump branch32(RelationalCondition cond, Address left, TrustedImm32 right) | - | ||||||||||||||||||||||||||||||
967 | { | - | ||||||||||||||||||||||||||||||
968 | m_assembler.cmpl_im(right.m_value, left.offset, left.base); | - | ||||||||||||||||||||||||||||||
969 | return executed 52784 times by 64 tests: Jump(m_assembler.jCC(x86Condition(cond)));return Jump(m_assembler.jCC(x86Condition(cond))); Executed by:
executed 52784 times by 64 tests: return Jump(m_assembler.jCC(x86Condition(cond))); Executed by:
| 52784 | ||||||||||||||||||||||||||||||
970 | } | - | ||||||||||||||||||||||||||||||
971 | - | |||||||||||||||||||||||||||||||
972 | Jump branch32(RelationalCondition cond, BaseIndex left, TrustedImm32 right) | - | ||||||||||||||||||||||||||||||
973 | { | - | ||||||||||||||||||||||||||||||
974 | m_assembler.cmpl_im(right.m_value, left.offset, left.base, left.index, left.scale); | - | ||||||||||||||||||||||||||||||
975 | return never executed: Jump(m_assembler.jCC(x86Condition(cond)));return Jump(m_assembler.jCC(x86Condition(cond))); never executed: return Jump(m_assembler.jCC(x86Condition(cond))); | 0 | ||||||||||||||||||||||||||||||
976 | } | - | ||||||||||||||||||||||||||||||
977 | - | |||||||||||||||||||||||||||||||
978 | Jump branch32WithUnalignedHalfWords(RelationalCondition cond, BaseIndex left, TrustedImm32 right) | - | ||||||||||||||||||||||||||||||
979 | { | - | ||||||||||||||||||||||||||||||
980 | return never executed: branch32(cond, left, right);return branch32(cond, left, right); never executed: return branch32(cond, left, right); | 0 | ||||||||||||||||||||||||||||||
981 | } | - | ||||||||||||||||||||||||||||||
982 | - | |||||||||||||||||||||||||||||||
983 | Jump branchTest32(ResultCondition cond, RegisterID reg, RegisterID mask) | - | ||||||||||||||||||||||||||||||
984 | { | - | ||||||||||||||||||||||||||||||
985 | m_assembler.testl_rr(reg, mask); | - | ||||||||||||||||||||||||||||||
986 | return never executed: Jump(m_assembler.jCC(x86Condition(cond)));return Jump(m_assembler.jCC(x86Condition(cond))); never executed: return Jump(m_assembler.jCC(x86Condition(cond))); | 0 | ||||||||||||||||||||||||||||||
987 | } | - | ||||||||||||||||||||||||||||||
988 | - | |||||||||||||||||||||||||||||||
989 | Jump branchTest32(ResultCondition cond, RegisterID reg, TrustedImm32 mask = TrustedImm32(-1)) | - | ||||||||||||||||||||||||||||||
990 | { | - | ||||||||||||||||||||||||||||||
991 | - | |||||||||||||||||||||||||||||||
992 | if (mask.m_value == -1
| 0-2182 | ||||||||||||||||||||||||||||||
993 | m_assembler.testl_rr(reg, reg); executed 2182 times by 8 tests: m_assembler.testl_rr(reg, reg); Executed by:
| 2182 | ||||||||||||||||||||||||||||||
994 | else | - | ||||||||||||||||||||||||||||||
995 | m_assembler.testl_i32r(mask.m_value, reg); never executed: m_assembler.testl_i32r(mask.m_value, reg); | 0 | ||||||||||||||||||||||||||||||
996 | return executed 2183 times by 8 tests: Jump(m_assembler.jCC(x86Condition(cond)));return Jump(m_assembler.jCC(x86Condition(cond))); Executed by:
executed 2183 times by 8 tests: return Jump(m_assembler.jCC(x86Condition(cond))); Executed by:
| 2183 | ||||||||||||||||||||||||||||||
997 | } | - | ||||||||||||||||||||||||||||||
998 | - | |||||||||||||||||||||||||||||||
999 | Jump branchTest32(ResultCondition cond, Address address, TrustedImm32 mask = TrustedImm32(-1)) | - | ||||||||||||||||||||||||||||||
1000 | { | - | ||||||||||||||||||||||||||||||
1001 | if (mask.m_value == -1
| 0 | ||||||||||||||||||||||||||||||
1002 | m_assembler.cmpl_im(0, address.offset, address.base); never executed: m_assembler.cmpl_im(0, address.offset, address.base); | 0 | ||||||||||||||||||||||||||||||
1003 | else | - | ||||||||||||||||||||||||||||||
1004 | m_assembler.testl_i32m(mask.m_value, address.offset, address.base); never executed: m_assembler.testl_i32m(mask.m_value, address.offset, address.base); | 0 | ||||||||||||||||||||||||||||||
1005 | return never executed: Jump(m_assembler.jCC(x86Condition(cond)));return Jump(m_assembler.jCC(x86Condition(cond))); never executed: return Jump(m_assembler.jCC(x86Condition(cond))); | 0 | ||||||||||||||||||||||||||||||
1006 | } | - | ||||||||||||||||||||||||||||||
1007 | - | |||||||||||||||||||||||||||||||
1008 | Jump branchTest32(ResultCondition cond, BaseIndex address, TrustedImm32 mask = TrustedImm32(-1)) | - | ||||||||||||||||||||||||||||||
1009 | { | - | ||||||||||||||||||||||||||||||
1010 | if (mask.m_value == -1
| 0 | ||||||||||||||||||||||||||||||
1011 | m_assembler.cmpl_im(0, address.offset, address.base, address.index, address.scale); never executed: m_assembler.cmpl_im(0, address.offset, address.base, address.index, address.scale); | 0 | ||||||||||||||||||||||||||||||
1012 | else | - | ||||||||||||||||||||||||||||||
1013 | m_assembler.testl_i32m(mask.m_value, address.offset, address.base, address.index, address.scale); never executed: m_assembler.testl_i32m(mask.m_value, address.offset, address.base, address.index, address.scale); | 0 | ||||||||||||||||||||||||||||||
1014 | return never executed: Jump(m_assembler.jCC(x86Condition(cond)));return Jump(m_assembler.jCC(x86Condition(cond))); never executed: return Jump(m_assembler.jCC(x86Condition(cond))); | 0 | ||||||||||||||||||||||||||||||
1015 | } | - | ||||||||||||||||||||||||||||||
1016 | - | |||||||||||||||||||||||||||||||
1017 | Jump branchTest8(ResultCondition cond, Address address, TrustedImm32 mask = TrustedImm32(-1)) | - | ||||||||||||||||||||||||||||||
1018 | { | - | ||||||||||||||||||||||||||||||
1019 | - | |||||||||||||||||||||||||||||||
1020 | (!(mask.m_value >= -128 && mask.m_value <= 255) ? (qmlWTFReportAssertionFailure(__FILE__, 1179, __PRETTY_FUNCTION__, "mask.m_value >= -128 && mask.m_value <= 255"), (qmlWTFReportBacktrace(), qmlWTFInvokeCrashHook(), (*(int *)(uintptr_t)0xbbadbeef = 0), __builtin_trap())) : (void)0); | - | ||||||||||||||||||||||||||||||
1021 | if (mask.m_value == -1
| 0 | ||||||||||||||||||||||||||||||
1022 | m_assembler.cmpb_im(0, address.offset, address.base); never executed: m_assembler.cmpb_im(0, address.offset, address.base); | 0 | ||||||||||||||||||||||||||||||
1023 | else | - | ||||||||||||||||||||||||||||||
1024 | m_assembler.testb_im(mask.m_value, address.offset, address.base); never executed: m_assembler.testb_im(mask.m_value, address.offset, address.base); | 0 | ||||||||||||||||||||||||||||||
1025 | return never executed: Jump(m_assembler.jCC(x86Condition(cond)));return Jump(m_assembler.jCC(x86Condition(cond))); never executed: return Jump(m_assembler.jCC(x86Condition(cond))); | 0 | ||||||||||||||||||||||||||||||
1026 | } | - | ||||||||||||||||||||||||||||||
1027 | - | |||||||||||||||||||||||||||||||
1028 | Jump branchTest8(ResultCondition cond, BaseIndex address, TrustedImm32 mask = TrustedImm32(-1)) | - | ||||||||||||||||||||||||||||||
1029 | { | - | ||||||||||||||||||||||||||||||
1030 | - | |||||||||||||||||||||||||||||||
1031 | (!(mask.m_value >= -128 && mask.m_value <= 255) ? (qmlWTFReportAssertionFailure(__FILE__, 1190, __PRETTY_FUNCTION__, "mask.m_value >= -128 && mask.m_value <= 255"), (qmlWTFReportBacktrace(), qmlWTFInvokeCrashHook(), (*(int *)(uintptr_t)0xbbadbeef = 0), __builtin_trap())) : (void)0); | - | ||||||||||||||||||||||||||||||
1032 | if (mask.m_value == -1
| 0-3752 | ||||||||||||||||||||||||||||||
1033 | m_assembler.cmpb_im(0, address.offset, address.base, address.index, address.scale); executed 3753 times by 3 tests: m_assembler.cmpb_im(0, address.offset, address.base, address.index, address.scale); Executed by:
| 3753 | ||||||||||||||||||||||||||||||
1034 | else | - | ||||||||||||||||||||||||||||||
1035 | m_assembler.testb_im(mask.m_value, address.offset, address.base, address.index, address.scale); never executed: m_assembler.testb_im(mask.m_value, address.offset, address.base, address.index, address.scale); | 0 | ||||||||||||||||||||||||||||||
1036 | return executed 3754 times by 3 tests: Jump(m_assembler.jCC(x86Condition(cond)));return Jump(m_assembler.jCC(x86Condition(cond))); Executed by:
executed 3754 times by 3 tests: return Jump(m_assembler.jCC(x86Condition(cond))); Executed by:
| 3754 | ||||||||||||||||||||||||||||||
1037 | } | - | ||||||||||||||||||||||||||||||
1038 | - | |||||||||||||||||||||||||||||||
1039 | Jump branch8(RelationalCondition cond, BaseIndex left, TrustedImm32 right) | - | ||||||||||||||||||||||||||||||
1040 | { | - | ||||||||||||||||||||||||||||||
1041 | (!(!(right.m_value & 0xFFFFFF00)) ? (qmlWTFReportAssertionFailure(__FILE__, 1200, __PRETTY_FUNCTION__, "!(right.m_value & 0xFFFFFF00)"), (qmlWTFReportBacktrace(), qmlWTFInvokeCrashHook(), (*(int *)(uintptr_t)0xbbadbeef = 0), __builtin_trap())) : (void)0); | - | ||||||||||||||||||||||||||||||
1042 | - | |||||||||||||||||||||||||||||||
1043 | m_assembler.cmpb_im(right.m_value, left.offset, left.base, left.index, left.scale); | - | ||||||||||||||||||||||||||||||
1044 | return never executed: Jump(m_assembler.jCC(x86Condition(cond)));return Jump(m_assembler.jCC(x86Condition(cond))); never executed: return Jump(m_assembler.jCC(x86Condition(cond))); | 0 | ||||||||||||||||||||||||||||||
1045 | } | - | ||||||||||||||||||||||||||||||
1046 | - | |||||||||||||||||||||||||||||||
1047 | Jump jump() | - | ||||||||||||||||||||||||||||||
1048 | { | - | ||||||||||||||||||||||||||||||
1049 | return executed 1186261 times by 153 tests: Jump(m_assembler.jmp());return Jump(m_assembler.jmp()); Executed by:
executed 1186261 times by 153 tests: return Jump(m_assembler.jmp()); Executed by:
| 1186261 | ||||||||||||||||||||||||||||||
1050 | } | - | ||||||||||||||||||||||||||||||
1051 | - | |||||||||||||||||||||||||||||||
1052 | void jump(RegisterID target) | - | ||||||||||||||||||||||||||||||
1053 | { | - | ||||||||||||||||||||||||||||||
1054 | m_assembler.jmp_r(target); | - | ||||||||||||||||||||||||||||||
1055 | } executed 13238 times by 64 tests: end of block Executed by:
| 13238 | ||||||||||||||||||||||||||||||
1056 | - | |||||||||||||||||||||||||||||||
1057 | - | |||||||||||||||||||||||||||||||
1058 | void jump(Address address) | - | ||||||||||||||||||||||||||||||
1059 | { | - | ||||||||||||||||||||||||||||||
1060 | m_assembler.jmp_m(address.offset, address.base); | - | ||||||||||||||||||||||||||||||
1061 | } executed 164 times by 3 tests: end of block Executed by:
| 164 | ||||||||||||||||||||||||||||||
1062 | Jump branchAdd32(ResultCondition cond, RegisterID src, RegisterID dest) | - | ||||||||||||||||||||||||||||||
1063 | { | - | ||||||||||||||||||||||||||||||
1064 | add32(src, dest); | - | ||||||||||||||||||||||||||||||
1065 | return executed 2130 times by 29 tests: Jump(m_assembler.jCC(x86Condition(cond)));return Jump(m_assembler.jCC(x86Condition(cond))); Executed by:
executed 2130 times by 29 tests: return Jump(m_assembler.jCC(x86Condition(cond))); Executed by:
| 2130 | ||||||||||||||||||||||||||||||
1066 | } | - | ||||||||||||||||||||||||||||||
1067 | - | |||||||||||||||||||||||||||||||
1068 | Jump branchAdd32(ResultCondition cond, TrustedImm32 imm, RegisterID dest) | - | ||||||||||||||||||||||||||||||
1069 | { | - | ||||||||||||||||||||||||||||||
1070 | add32(imm, dest); | - | ||||||||||||||||||||||||||||||
1071 | return executed 326 times by 13 tests: Jump(m_assembler.jCC(x86Condition(cond)));return Jump(m_assembler.jCC(x86Condition(cond))); Executed by:
executed 326 times by 13 tests: return Jump(m_assembler.jCC(x86Condition(cond))); Executed by:
| 326 | ||||||||||||||||||||||||||||||
1072 | } | - | ||||||||||||||||||||||||||||||
1073 | - | |||||||||||||||||||||||||||||||
1074 | Jump branchAdd32(ResultCondition cond, TrustedImm32 src, Address dest) | - | ||||||||||||||||||||||||||||||
1075 | { | - | ||||||||||||||||||||||||||||||
1076 | add32(src, dest); | - | ||||||||||||||||||||||||||||||
1077 | return never executed: Jump(m_assembler.jCC(x86Condition(cond)));return Jump(m_assembler.jCC(x86Condition(cond))); never executed: return Jump(m_assembler.jCC(x86Condition(cond))); | 0 | ||||||||||||||||||||||||||||||
1078 | } | - | ||||||||||||||||||||||||||||||
1079 | - | |||||||||||||||||||||||||||||||
1080 | Jump branchAdd32(ResultCondition cond, RegisterID src, Address dest) | - | ||||||||||||||||||||||||||||||
1081 | { | - | ||||||||||||||||||||||||||||||
1082 | add32(src, dest); | - | ||||||||||||||||||||||||||||||
1083 | return never executed: Jump(m_assembler.jCC(x86Condition(cond)));return Jump(m_assembler.jCC(x86Condition(cond))); never executed: return Jump(m_assembler.jCC(x86Condition(cond))); | 0 | ||||||||||||||||||||||||||||||
1084 | } | - | ||||||||||||||||||||||||||||||
1085 | - | |||||||||||||||||||||||||||||||
1086 | Jump branchAdd32(ResultCondition cond, Address src, RegisterID dest) | - | ||||||||||||||||||||||||||||||
1087 | { | - | ||||||||||||||||||||||||||||||
1088 | add32(src, dest); | - | ||||||||||||||||||||||||||||||
1089 | return never executed: Jump(m_assembler.jCC(x86Condition(cond)));return Jump(m_assembler.jCC(x86Condition(cond))); never executed: return Jump(m_assembler.jCC(x86Condition(cond))); | 0 | ||||||||||||||||||||||||||||||
1090 | } | - | ||||||||||||||||||||||||||||||
1091 | - | |||||||||||||||||||||||||||||||
1092 | Jump branchAdd32(ResultCondition cond, RegisterID src1, RegisterID src2, RegisterID dest) | - | ||||||||||||||||||||||||||||||
1093 | { | - | ||||||||||||||||||||||||||||||
1094 | if (src1 == dest
| 0 | ||||||||||||||||||||||||||||||
1095 | return never executed: branchAdd32(cond, src2, dest);return branchAdd32(cond, src2, dest); never executed: return branchAdd32(cond, src2, dest); | 0 | ||||||||||||||||||||||||||||||
1096 | move(src2, dest); | - | ||||||||||||||||||||||||||||||
1097 | return never executed: branchAdd32(cond, src1, dest);return branchAdd32(cond, src1, dest); never executed: return branchAdd32(cond, src1, dest); | 0 | ||||||||||||||||||||||||||||||
1098 | } | - | ||||||||||||||||||||||||||||||
1099 | - | |||||||||||||||||||||||||||||||
1100 | Jump branchAdd32(ResultCondition cond, RegisterID src, TrustedImm32 imm, RegisterID dest) | - | ||||||||||||||||||||||||||||||
1101 | { | - | ||||||||||||||||||||||||||||||
1102 | move(src, dest); | - | ||||||||||||||||||||||||||||||
1103 | return executed 326 times by 13 tests: branchAdd32(cond, imm, dest);return branchAdd32(cond, imm, dest); Executed by:
executed 326 times by 13 tests: return branchAdd32(cond, imm, dest); Executed by:
| 326 | ||||||||||||||||||||||||||||||
1104 | } | - | ||||||||||||||||||||||||||||||
1105 | - | |||||||||||||||||||||||||||||||
1106 | Jump branchMul32(ResultCondition cond, RegisterID src, RegisterID dest) | - | ||||||||||||||||||||||||||||||
1107 | { | - | ||||||||||||||||||||||||||||||
1108 | mul32(src, dest); | - | ||||||||||||||||||||||||||||||
1109 | if (cond != Overflow
| 0-896 | ||||||||||||||||||||||||||||||
1110 | m_assembler.testl_rr(dest, dest); never executed: m_assembler.testl_rr(dest, dest); | 0 | ||||||||||||||||||||||||||||||
1111 | return executed 896 times by 13 tests: Jump(m_assembler.jCC(x86Condition(cond)));return Jump(m_assembler.jCC(x86Condition(cond))); Executed by:
executed 896 times by 13 tests: return Jump(m_assembler.jCC(x86Condition(cond))); Executed by:
| 896 | ||||||||||||||||||||||||||||||
1112 | } | - | ||||||||||||||||||||||||||||||
1113 | - | |||||||||||||||||||||||||||||||
1114 | Jump branchMul32(ResultCondition cond, Address src, RegisterID dest) | - | ||||||||||||||||||||||||||||||
1115 | { | - | ||||||||||||||||||||||||||||||
1116 | mul32(src, dest); | - | ||||||||||||||||||||||||||||||
1117 | if (cond != Overflow
| 0 | ||||||||||||||||||||||||||||||
1118 | m_assembler.testl_rr(dest, dest); never executed: m_assembler.testl_rr(dest, dest); | 0 | ||||||||||||||||||||||||||||||
1119 | return never executed: Jump(m_assembler.jCC(x86Condition(cond)));return Jump(m_assembler.jCC(x86Condition(cond))); never executed: return Jump(m_assembler.jCC(x86Condition(cond))); | 0 | ||||||||||||||||||||||||||||||
1120 | } | - | ||||||||||||||||||||||||||||||
1121 | - | |||||||||||||||||||||||||||||||
1122 | Jump branchMul32(ResultCondition cond, TrustedImm32 imm, RegisterID src, RegisterID dest) | - | ||||||||||||||||||||||||||||||
1123 | { | - | ||||||||||||||||||||||||||||||
1124 | mul32(imm, src, dest); | - | ||||||||||||||||||||||||||||||
1125 | if (cond != Overflow
| 0 | ||||||||||||||||||||||||||||||
1126 | m_assembler.testl_rr(dest, dest); never executed: m_assembler.testl_rr(dest, dest); | 0 | ||||||||||||||||||||||||||||||
1127 | return never executed: Jump(m_assembler.jCC(x86Condition(cond)));return Jump(m_assembler.jCC(x86Condition(cond))); never executed: return Jump(m_assembler.jCC(x86Condition(cond))); | 0 | ||||||||||||||||||||||||||||||
1128 | } | - | ||||||||||||||||||||||||||||||
1129 | - | |||||||||||||||||||||||||||||||
1130 | Jump branchMul32(ResultCondition cond, RegisterID src1, RegisterID src2, RegisterID dest) | - | ||||||||||||||||||||||||||||||
1131 | { | - | ||||||||||||||||||||||||||||||
1132 | if (src1 == dest
| 0 | ||||||||||||||||||||||||||||||
1133 | return never executed: branchMul32(cond, src2, dest);return branchMul32(cond, src2, dest); never executed: return branchMul32(cond, src2, dest); | 0 | ||||||||||||||||||||||||||||||
1134 | move(src2, dest); | - | ||||||||||||||||||||||||||||||
1135 | return never executed: branchMul32(cond, src1, dest);return branchMul32(cond, src1, dest); never executed: return branchMul32(cond, src1, dest); | 0 | ||||||||||||||||||||||||||||||
1136 | } | - | ||||||||||||||||||||||||||||||
1137 | - | |||||||||||||||||||||||||||||||
1138 | Jump branchSub32(ResultCondition cond, RegisterID src, RegisterID dest) | - | ||||||||||||||||||||||||||||||
1139 | { | - | ||||||||||||||||||||||||||||||
1140 | sub32(src, dest); | - | ||||||||||||||||||||||||||||||
1141 | return executed 686 times by 20 tests: Jump(m_assembler.jCC(x86Condition(cond)));return Jump(m_assembler.jCC(x86Condition(cond))); Executed by:
executed 686 times by 20 tests: return Jump(m_assembler.jCC(x86Condition(cond))); Executed by:
| 686 | ||||||||||||||||||||||||||||||
1142 | } | - | ||||||||||||||||||||||||||||||
1143 | - | |||||||||||||||||||||||||||||||
1144 | Jump branchSub32(ResultCondition cond, TrustedImm32 imm, RegisterID dest) | - | ||||||||||||||||||||||||||||||
1145 | { | - | ||||||||||||||||||||||||||||||
1146 | sub32(imm, dest); | - | ||||||||||||||||||||||||||||||
1147 | return executed 288 times by 6 tests: Jump(m_assembler.jCC(x86Condition(cond)));return Jump(m_assembler.jCC(x86Condition(cond))); Executed by:
executed 288 times by 6 tests: return Jump(m_assembler.jCC(x86Condition(cond))); Executed by:
| 288 | ||||||||||||||||||||||||||||||
1148 | } | - | ||||||||||||||||||||||||||||||
1149 | - | |||||||||||||||||||||||||||||||
1150 | Jump branchSub32(ResultCondition cond, TrustedImm32 imm, Address dest) | - | ||||||||||||||||||||||||||||||
1151 | { | - | ||||||||||||||||||||||||||||||
1152 | sub32(imm, dest); | - | ||||||||||||||||||||||||||||||
1153 | return never executed: Jump(m_assembler.jCC(x86Condition(cond)));return Jump(m_assembler.jCC(x86Condition(cond))); never executed: return Jump(m_assembler.jCC(x86Condition(cond))); | 0 | ||||||||||||||||||||||||||||||
1154 | } | - | ||||||||||||||||||||||||||||||
1155 | - | |||||||||||||||||||||||||||||||
1156 | Jump branchSub32(ResultCondition cond, RegisterID src, Address dest) | - | ||||||||||||||||||||||||||||||
1157 | { | - | ||||||||||||||||||||||||||||||
1158 | sub32(src, dest); | - | ||||||||||||||||||||||||||||||
1159 | return never executed: Jump(m_assembler.jCC(x86Condition(cond)));return Jump(m_assembler.jCC(x86Condition(cond))); never executed: return Jump(m_assembler.jCC(x86Condition(cond))); | 0 | ||||||||||||||||||||||||||||||
1160 | } | - | ||||||||||||||||||||||||||||||
1161 | - | |||||||||||||||||||||||||||||||
1162 | Jump branchSub32(ResultCondition cond, Address src, RegisterID dest) | - | ||||||||||||||||||||||||||||||
1163 | { | - | ||||||||||||||||||||||||||||||
1164 | sub32(src, dest); | - | ||||||||||||||||||||||||||||||
1165 | return never executed: Jump(m_assembler.jCC(x86Condition(cond)));return Jump(m_assembler.jCC(x86Condition(cond))); never executed: return Jump(m_assembler.jCC(x86Condition(cond))); | 0 | ||||||||||||||||||||||||||||||
1166 | } | - | ||||||||||||||||||||||||||||||
1167 | - | |||||||||||||||||||||||||||||||
1168 | Jump branchSub32(ResultCondition cond, RegisterID src1, RegisterID src2, RegisterID dest) | - | ||||||||||||||||||||||||||||||
1169 | { | - | ||||||||||||||||||||||||||||||
1170 | - | |||||||||||||||||||||||||||||||
1171 | (!(src1 == dest || src2 != dest) ? (qmlWTFReportAssertionFailure(__FILE__, 1342, __PRETTY_FUNCTION__, "src1 == dest || src2 != dest"), (qmlWTFReportBacktrace(), qmlWTFInvokeCrashHook(), (*(int *)(uintptr_t)0xbbadbeef = 0), __builtin_trap())) : (void)0); | - | ||||||||||||||||||||||||||||||
1172 | - | |||||||||||||||||||||||||||||||
1173 | move(src1, dest); | - | ||||||||||||||||||||||||||||||
1174 | return never executed: branchSub32(cond, src2, dest);return branchSub32(cond, src2, dest); never executed: return branchSub32(cond, src2, dest); | 0 | ||||||||||||||||||||||||||||||
1175 | } | - | ||||||||||||||||||||||||||||||
1176 | - | |||||||||||||||||||||||||||||||
1177 | Jump branchSub32(ResultCondition cond, RegisterID src1, TrustedImm32 src2, RegisterID dest) | - | ||||||||||||||||||||||||||||||
1178 | { | - | ||||||||||||||||||||||||||||||
1179 | move(src1, dest); | - | ||||||||||||||||||||||||||||||
1180 | return executed 288 times by 6 tests: branchSub32(cond, src2, dest);return branchSub32(cond, src2, dest); Executed by:
executed 288 times by 6 tests: return branchSub32(cond, src2, dest); Executed by:
| 288 | ||||||||||||||||||||||||||||||
1181 | } | - | ||||||||||||||||||||||||||||||
1182 | - | |||||||||||||||||||||||||||||||
1183 | Jump branchNeg32(ResultCondition cond, RegisterID srcDest) | - | ||||||||||||||||||||||||||||||
1184 | { | - | ||||||||||||||||||||||||||||||
1185 | neg32(srcDest); | - | ||||||||||||||||||||||||||||||
1186 | return never executed: Jump(m_assembler.jCC(x86Condition(cond)));return Jump(m_assembler.jCC(x86Condition(cond))); never executed: return Jump(m_assembler.jCC(x86Condition(cond))); | 0 | ||||||||||||||||||||||||||||||
1187 | } | - | ||||||||||||||||||||||||||||||
1188 | - | |||||||||||||||||||||||||||||||
1189 | Jump branchOr32(ResultCondition cond, RegisterID src, RegisterID dest) | - | ||||||||||||||||||||||||||||||
1190 | { | - | ||||||||||||||||||||||||||||||
1191 | or32(src, dest); | - | ||||||||||||||||||||||||||||||
1192 | return never executed: Jump(m_assembler.jCC(x86Condition(cond)));return Jump(m_assembler.jCC(x86Condition(cond))); never executed: return Jump(m_assembler.jCC(x86Condition(cond))); | 0 | ||||||||||||||||||||||||||||||
1193 | } | - | ||||||||||||||||||||||||||||||
1194 | - | |||||||||||||||||||||||||||||||
1195 | - | |||||||||||||||||||||||||||||||
1196 | - | |||||||||||||||||||||||||||||||
1197 | - | |||||||||||||||||||||||||||||||
1198 | void breakpoint() | - | ||||||||||||||||||||||||||||||
1199 | { | - | ||||||||||||||||||||||||||||||
1200 | m_assembler.int3(); | - | ||||||||||||||||||||||||||||||
1201 | } executed 12 times by 1 test: end of block Executed by:
| 12 | ||||||||||||||||||||||||||||||
1202 | - | |||||||||||||||||||||||||||||||
1203 | Call nearCall() | - | ||||||||||||||||||||||||||||||
1204 | { | - | ||||||||||||||||||||||||||||||
1205 | return never executed: Call(m_assembler.call(), Call::LinkableNear);return Call(m_assembler.call(), Call::LinkableNear); never executed: return Call(m_assembler.call(), Call::LinkableNear); | 0 | ||||||||||||||||||||||||||||||
1206 | } | - | ||||||||||||||||||||||||||||||
1207 | - | |||||||||||||||||||||||||||||||
1208 | Call call(RegisterID target) | - | ||||||||||||||||||||||||||||||
1209 | { | - | ||||||||||||||||||||||||||||||
1210 | return executed 83222 times by 64 tests: Call(m_assembler.call(target), Call::None);return Call(m_assembler.call(target), Call::None); Executed by:
executed 83222 times by 64 tests: return Call(m_assembler.call(target), Call::None); Executed by:
| 83222 | ||||||||||||||||||||||||||||||
1211 | } | - | ||||||||||||||||||||||||||||||
1212 | - | |||||||||||||||||||||||||||||||
1213 | void call(Address address) | - | ||||||||||||||||||||||||||||||
1214 | { | - | ||||||||||||||||||||||||||||||
1215 | m_assembler.call_m(address.offset, address.base); | - | ||||||||||||||||||||||||||||||
1216 | } never executed: end of block | 0 | ||||||||||||||||||||||||||||||
1217 | - | |||||||||||||||||||||||||||||||
1218 | void ret() | - | ||||||||||||||||||||||||||||||
1219 | { | - | ||||||||||||||||||||||||||||||
1220 | m_assembler.ret(); | - | ||||||||||||||||||||||||||||||
1221 | } executed 3462963 times by 153 tests: end of block Executed by:
| 3462963 | ||||||||||||||||||||||||||||||
1222 | - | |||||||||||||||||||||||||||||||
1223 | void compare8(RelationalCondition cond, Address left, TrustedImm32 right, RegisterID dest) | - | ||||||||||||||||||||||||||||||
1224 | { | - | ||||||||||||||||||||||||||||||
1225 | m_assembler.cmpb_im(right.m_value, left.offset, left.base); | - | ||||||||||||||||||||||||||||||
1226 | set32(x86Condition(cond), dest); | - | ||||||||||||||||||||||||||||||
1227 | } never executed: end of block | 0 | ||||||||||||||||||||||||||||||
1228 | - | |||||||||||||||||||||||||||||||
1229 | void compare32(RelationalCondition cond, RegisterID left, RegisterID right, RegisterID dest) | - | ||||||||||||||||||||||||||||||
1230 | { | - | ||||||||||||||||||||||||||||||
1231 | m_assembler.cmpl_rr(right, left); | - | ||||||||||||||||||||||||||||||
1232 | set32(x86Condition(cond), dest); | - | ||||||||||||||||||||||||||||||
1233 | } executed 2256 times by 32 tests: end of block Executed by:
| 2256 | ||||||||||||||||||||||||||||||
1234 | - | |||||||||||||||||||||||||||||||
1235 | void compare32(RelationalCondition cond, RegisterID left, TrustedImm32 right, RegisterID dest) | - | ||||||||||||||||||||||||||||||
1236 | { | - | ||||||||||||||||||||||||||||||
1237 | if (((
| 0-316 | ||||||||||||||||||||||||||||||
1238 | m_assembler.testl_rr(left, left); executed 312 times by 12 tests: m_assembler.testl_rr(left, left); Executed by:
| 312 | ||||||||||||||||||||||||||||||
1239 | else | - | ||||||||||||||||||||||||||||||
1240 | m_assembler.cmpl_ir(right.m_value, left); executed 34 times by 8 tests: m_assembler.cmpl_ir(right.m_value, left); Executed by:
| 34 | ||||||||||||||||||||||||||||||
1241 | set32(x86Condition(cond), dest); | - | ||||||||||||||||||||||||||||||
1242 | } executed 346 times by 16 tests: end of block Executed by:
| 346 | ||||||||||||||||||||||||||||||
1243 | - | |||||||||||||||||||||||||||||||
1244 | - | |||||||||||||||||||||||||||||||
1245 | - | |||||||||||||||||||||||||||||||
1246 | - | |||||||||||||||||||||||||||||||
1247 | - | |||||||||||||||||||||||||||||||
1248 | - | |||||||||||||||||||||||||||||||
1249 | void test8(ResultCondition cond, Address address, TrustedImm32 mask, RegisterID dest) | - | ||||||||||||||||||||||||||||||
1250 | { | - | ||||||||||||||||||||||||||||||
1251 | if (mask.m_value == -1
| 0 | ||||||||||||||||||||||||||||||
1252 | m_assembler.cmpb_im(0, address.offset, address.base); never executed: m_assembler.cmpb_im(0, address.offset, address.base); | 0 | ||||||||||||||||||||||||||||||
1253 | else | - | ||||||||||||||||||||||||||||||
1254 | m_assembler.testb_im(mask.m_value, address.offset, address.base); never executed: m_assembler.testb_im(mask.m_value, address.offset, address.base); | 0 | ||||||||||||||||||||||||||||||
1255 | set32(x86Condition(cond), dest); | - | ||||||||||||||||||||||||||||||
1256 | } never executed: end of block | 0 | ||||||||||||||||||||||||||||||
1257 | - | |||||||||||||||||||||||||||||||
1258 | void test32(ResultCondition cond, Address address, TrustedImm32 mask, RegisterID dest) | - | ||||||||||||||||||||||||||||||
1259 | { | - | ||||||||||||||||||||||||||||||
1260 | if (mask.m_value == -1
| 0 | ||||||||||||||||||||||||||||||
1261 | m_assembler.cmpl_im(0, address.offset, address.base); never executed: m_assembler.cmpl_im(0, address.offset, address.base); | 0 | ||||||||||||||||||||||||||||||
1262 | else | - | ||||||||||||||||||||||||||||||
1263 | m_assembler.testl_i32m(mask.m_value, address.offset, address.base); never executed: m_assembler.testl_i32m(mask.m_value, address.offset, address.base); | 0 | ||||||||||||||||||||||||||||||
1264 | set32(x86Condition(cond), dest); | - | ||||||||||||||||||||||||||||||
1265 | } never executed: end of block | 0 | ||||||||||||||||||||||||||||||
1266 | - | |||||||||||||||||||||||||||||||
1267 | - | |||||||||||||||||||||||||||||||
1268 | static RelationalCondition invert(RelationalCondition cond) | - | ||||||||||||||||||||||||||||||
1269 | { | - | ||||||||||||||||||||||||||||||
1270 | return never executed: static_cast<RelationalCondition>(cond ^ 1);return static_cast<RelationalCondition>(cond ^ 1); never executed: return static_cast<RelationalCondition>(cond ^ 1); | 0 | ||||||||||||||||||||||||||||||
1271 | } | - | ||||||||||||||||||||||||||||||
1272 | - | |||||||||||||||||||||||||||||||
1273 | void nop() | - | ||||||||||||||||||||||||||||||
1274 | { | - | ||||||||||||||||||||||||||||||
1275 | m_assembler.nop(); | - | ||||||||||||||||||||||||||||||
1276 | } never executed: end of block | 0 | ||||||||||||||||||||||||||||||
1277 | - | |||||||||||||||||||||||||||||||
1278 | static void replaceWithJump(CodeLocationLabel instructionStart, CodeLocationLabel destination) | - | ||||||||||||||||||||||||||||||
1279 | { | - | ||||||||||||||||||||||||||||||
1280 | X86Assembler::replaceWithJump(instructionStart.executableAddress(), destination.executableAddress()); | - | ||||||||||||||||||||||||||||||
1281 | } never executed: end of block | 0 | ||||||||||||||||||||||||||||||
1282 | - | |||||||||||||||||||||||||||||||
1283 | static ptrdiff_t maxJumpReplacementSize() | - | ||||||||||||||||||||||||||||||
1284 | { | - | ||||||||||||||||||||||||||||||
1285 | return never executed: X86Assembler::maxJumpReplacementSize();return X86Assembler::maxJumpReplacementSize(); never executed: return X86Assembler::maxJumpReplacementSize(); | 0 | ||||||||||||||||||||||||||||||
1286 | } | - | ||||||||||||||||||||||||||||||
1287 | - | |||||||||||||||||||||||||||||||
1288 | protected: | - | ||||||||||||||||||||||||||||||
1289 | X86Assembler::Condition x86Condition(RelationalCondition cond) | - | ||||||||||||||||||||||||||||||
1290 | { | - | ||||||||||||||||||||||||||||||
1291 | return executed 6325906 times by 153 tests: static_cast<X86Assembler::Condition>(cond);return static_cast<X86Assembler::Condition>(cond); Executed by:
executed 6325906 times by 153 tests: return static_cast<X86Assembler::Condition>(cond); Executed by:
| 6325906 | ||||||||||||||||||||||||||||||
1292 | } | - | ||||||||||||||||||||||||||||||
1293 | - | |||||||||||||||||||||||||||||||
1294 | X86Assembler::Condition x86Condition(ResultCondition cond) | - | ||||||||||||||||||||||||||||||
1295 | { | - | ||||||||||||||||||||||||||||||
1296 | return executed 10262 times by 44 tests: static_cast<X86Assembler::Condition>(cond);return static_cast<X86Assembler::Condition>(cond); Executed by:
executed 10262 times by 44 tests: return static_cast<X86Assembler::Condition>(cond); Executed by:
| 10262 | ||||||||||||||||||||||||||||||
1297 | } | - | ||||||||||||||||||||||||||||||
1298 | - | |||||||||||||||||||||||||||||||
1299 | void set32(X86Assembler::Condition cond, RegisterID dest) | - | ||||||||||||||||||||||||||||||
1300 | { | - | ||||||||||||||||||||||||||||||
1301 | m_assembler.setCC_r(cond, dest); | - | ||||||||||||||||||||||||||||||
1302 | m_assembler.movzbl_rr(dest, dest); | - | ||||||||||||||||||||||||||||||
1303 | } executed 2602 times by 34 tests: end of block Executed by:
| 2602 | ||||||||||||||||||||||||||||||
1304 | - | |||||||||||||||||||||||||||||||
1305 | private: | - | ||||||||||||||||||||||||||||||
1306 | - | |||||||||||||||||||||||||||||||
1307 | - | |||||||||||||||||||||||||||||||
1308 | friend class MacroAssemblerX86; | - | ||||||||||||||||||||||||||||||
1309 | static bool isSSE2Present() | - | ||||||||||||||||||||||||||||||
1310 | { | - | ||||||||||||||||||||||||||||||
1311 | return never executed: true;return true; never executed: return true; | 0 | ||||||||||||||||||||||||||||||
1312 | } | - | ||||||||||||||||||||||||||||||
1313 | - | |||||||||||||||||||||||||||||||
1314 | - | |||||||||||||||||||||||||||||||
1315 | }; | - | ||||||||||||||||||||||||||||||
1316 | - | |||||||||||||||||||||||||||||||
1317 | } | - | ||||||||||||||||||||||||||||||
Switch to Source code | Preprocessed file |