OpenCoverage

X86Assembler.h

Absolute File Name:/home/opencoverage/opencoverage/guest-scripts/qtdeclarative/src/qtdeclarative/src/3rdparty/masm/assembler/X86Assembler.h
Source codeSwitch to Preprocessed file
LineSourceCount
1/*-
2 * Copyright (C) 2008, 2012 Apple Inc. All rights reserved.-
3 *-
4 * Redistribution and use in source and binary forms, with or without-
5 * modification, are permitted provided that the following conditions-
6 * are met:-
7 * 1. Redistributions of source code must retain the above copyright-
8 * notice, this list of conditions and the following disclaimer.-
9 * 2. Redistributions in binary form must reproduce the above copyright-
10 * notice, this list of conditions and the following disclaimer in the-
11 * documentation and/or other materials provided with the distribution.-
12 *-
13 * THIS SOFTWARE IS PROVIDED BY APPLE INC. ``AS IS'' AND ANY-
14 * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE-
15 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR-
16 * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR-
17 * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,-
18 * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,-
19 * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR-
20 * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY-
21 * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT-
22 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE-
23 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -
24 */-
25-
26#ifndef X86Assembler_h-
27#define X86Assembler_h-
28-
29#if ENABLE(ASSEMBLER) && (CPU(X86) || CPU(X86_64))-
30-
31#include "AssemblerBuffer.h"-
32#include "AbstractMacroAssembler.h"-
33#include "JITCompilationEffort.h"-
34#include <stdint.h>-
35#include <wtf/Assertions.h>-
36#include <wtf/Vector.h>-
37-
38namespace JSC {-
39-
40inline bool CAN_SIGN_EXTEND_8_32(int32_t value) { return value == (int32_t)(signed char)value; }
executed 9162673 times by 153 tests: return value == (int32_t)(signed char)value;
Executed by:
  • tst_bindingdependencyapi
  • tst_drawingmodes
  • tst_ecmascripttests
  • tst_examples
  • tst_flickableinterop
  • tst_multipointtoucharea_interop
  • tst_parserstress
  • tst_qjsengine
  • tst_qjsonbinding
  • tst_qjsvalue
  • tst_qjsvalueiterator
  • tst_qmlcachegen
  • tst_qmldiskcache
  • tst_qqmlapplicationengine
  • tst_qqmlbinding
  • tst_qqmlcomponent
  • tst_qqmlconnections
  • tst_qqmlconsole
  • tst_qqmlcontext
  • tst_qqmldebugclient
  • tst_qqmldebugjs
  • tst_qqmldebuglocal
  • tst_qqmldebugservice
  • tst_qqmlecmascript
  • tst_qqmlenginecleanup
  • ...
9162673
41-
42namespace X86Registers {-
43 typedef enum {-
44 eax,-
45 ecx,-
46 edx,-
47 ebx,-
48 esp,-
49 ebp,-
50 esi,-
51 edi,-
52-
53#if CPU(X86_64)-
54 r8,-
55 r9,-
56 r10,-
57 r11,-
58 r12,-
59 r13,-
60 r14,-
61 r15,-
62#endif-
63 } RegisterID;-
64-
65 typedef enum {-
66 xmm0,-
67 xmm1,-
68 xmm2,-
69 xmm3,-
70 xmm4,-
71 xmm5,-
72 xmm6,-
73 xmm7,-
74 } XMMRegisterID;-
75}-
76-
77class X86Assembler {-
78public:-
79 typedef X86Registers::RegisterID RegisterID;-
80 typedef X86Registers::XMMRegisterID XMMRegisterID;-
81 typedef XMMRegisterID FPRegisterID;-
82-
83 typedef enum {-
84 ConditionO,-
85 ConditionNO,-
86 ConditionB,-
87 ConditionAE,-
88 ConditionE,-
89 ConditionNE,-
90 ConditionBE,-
91 ConditionA,-
92 ConditionS,-
93 ConditionNS,-
94 ConditionP,-
95 ConditionNP,-
96 ConditionL,-
97 ConditionGE,-
98 ConditionLE,-
99 ConditionG,-
100-
101 ConditionC = ConditionB,-
102 ConditionNC = ConditionAE,-
103 } Condition;-
104-
105private:-
106 typedef enum {-
107 OP_ADD_EvGv = 0x01,-
108 OP_ADD_GvEv = 0x03,-
109 OP_OR_EvGv = 0x09,-
110 OP_OR_GvEv = 0x0B,-
111 OP_2BYTE_ESCAPE = 0x0F,-
112 OP_AND_EvGv = 0x21,-
113 OP_AND_GvEv = 0x23,-
114 OP_SUB_EvGv = 0x29,-
115 OP_SUB_GvEv = 0x2B,-
116 PRE_PREDICT_BRANCH_NOT_TAKEN = 0x2E,-
117 OP_XOR_EvGv = 0x31,-
118 OP_XOR_GvEv = 0x33,-
119 OP_CMP_EvGv = 0x39,-
120 OP_CMP_GvEv = 0x3B,-
121#if CPU(X86_64)-
122 PRE_REX = 0x40,-
123#endif-
124 OP_PUSH_EAX = 0x50,-
125 OP_POP_EAX = 0x58,-
126#if CPU(X86_64)-
127 OP_MOVSXD_GvEv = 0x63,-
128#endif-
129 PRE_OPERAND_SIZE = 0x66,-
130 PRE_SSE_66 = 0x66,-
131 OP_PUSH_Iz = 0x68,-
132 OP_IMUL_GvEvIz = 0x69,-
133 OP_GROUP1_EbIb = 0x80,-
134 OP_GROUP1_EvIz = 0x81,-
135 OP_GROUP1_EvIb = 0x83,-
136 OP_TEST_EbGb = 0x84,-
137 OP_TEST_EvGv = 0x85,-
138 OP_XCHG_EvGv = 0x87,-
139 OP_MOV_EbGb = 0x88,-
140 OP_MOV_EvGv = 0x89,-
141 OP_MOV_GvEv = 0x8B,-
142 OP_LEA = 0x8D,-
143 OP_GROUP1A_Ev = 0x8F,-
144 OP_NOP = 0x90,-
145 OP_CDQ = 0x99,-
146 OP_MOV_EAXOv = 0xA1,-
147 OP_MOV_OvEAX = 0xA3,-
148 OP_MOV_EAXIv = 0xB8,-
149 OP_GROUP2_EvIb = 0xC1,-
150 OP_RET = 0xC3,-
151 OP_GROUP11_EvIb = 0xC6,-
152 OP_GROUP11_EvIz = 0xC7,-
153 OP_INT3 = 0xCC,-
154 OP_GROUP2_Ev1 = 0xD1,-
155 OP_GROUP2_EvCL = 0xD3,-
156 OP_ESCAPE_DD = 0xDD,-
157 OP_CALL_rel32 = 0xE8,-
158 OP_JMP_rel32 = 0xE9,-
159 PRE_SSE_F2 = 0xF2,-
160 PRE_SSE_F3 = 0xF3,-
161 OP_HLT = 0xF4,-
162 OP_GROUP3_EbIb = 0xF6,-
163 OP_GROUP3_Ev = 0xF7,-
164 OP_GROUP3_EvIz = 0xF7, // OP_GROUP3_Ev has an immediate, when instruction is a test. -
165 OP_GROUP5_Ev = 0xFF,-
166 } OneByteOpcodeID;-
167-
168 typedef enum {-
169 OP2_MOVSD_VsdWsd = 0x10,-
170 OP2_MOVSD_WsdVsd = 0x11,-
171 OP2_MOVSS_VsdWsd = 0x10,-
172 OP2_MOVSS_WsdVsd = 0x11,-
173 OP2_CVTSI2SD_VsdEd = 0x2A,-
174 OP2_CVTTSD2SI_GdWsd = 0x2C,-
175 OP2_UCOMISD_VsdWsd = 0x2E,-
176 OP2_ADDSD_VsdWsd = 0x58,-
177 OP2_MULSD_VsdWsd = 0x59,-
178 OP2_CVTSD2SS_VsdWsd = 0x5A,-
179 OP2_CVTSS2SD_VsdWsd = 0x5A,-
180 OP2_SUBSD_VsdWsd = 0x5C,-
181 OP2_DIVSD_VsdWsd = 0x5E,-
182 OP2_SQRTSD_VsdWsd = 0x51,-
183 OP2_ANDNPD_VpdWpd = 0x55,-
184 OP2_XORPD_VpdWpd = 0x57,-
185 OP2_MOVD_VdEd = 0x6E,-
186 OP2_MOVD_EdVd = 0x7E,-
187 OP2_JCC_rel32 = 0x80,-
188 OP_SETCC = 0x90,-
189 OP2_IMUL_GvEv = 0xAF,-
190 OP2_MOVZX_GvEb = 0xB6,-
191 OP2_MOVSX_GvEb = 0xBE,-
192 OP2_MOVZX_GvEw = 0xB7,-
193 OP2_MOVSX_GvEw = 0xBF,-
194 OP2_PEXTRW_GdUdIb = 0xC5,-
195 OP2_PSLLQ_UdqIb = 0x73,-
196 OP2_PSRLQ_UdqIb = 0x73,-
197 OP2_POR_VdqWdq = 0XEB,-
198 } TwoByteOpcodeID;-
199-
200 TwoByteOpcodeID jccRel32(Condition cond)-
201 {-
202 return (TwoByteOpcodeID)(OP2_JCC_rel32 + cond);
executed 6333950 times by 153 tests: return (TwoByteOpcodeID)(OP2_JCC_rel32 + cond);
Executed by:
  • tst_bindingdependencyapi
  • tst_drawingmodes
  • tst_ecmascripttests
  • tst_examples
  • tst_flickableinterop
  • tst_multipointtoucharea_interop
  • tst_parserstress
  • tst_qjsengine
  • tst_qjsonbinding
  • tst_qjsvalue
  • tst_qjsvalueiterator
  • tst_qmlcachegen
  • tst_qmldiskcache
  • tst_qqmlapplicationengine
  • tst_qqmlbinding
  • tst_qqmlcomponent
  • tst_qqmlconnections
  • tst_qqmlconsole
  • tst_qqmlcontext
  • tst_qqmldebugclient
  • tst_qqmldebugjs
  • tst_qqmldebuglocal
  • tst_qqmldebugservice
  • tst_qqmlecmascript
  • tst_qqmlenginecleanup
  • ...
6333950
203 }-
204-
205 TwoByteOpcodeID setccOpcode(Condition cond)-
206 {-
207 return (TwoByteOpcodeID)(OP_SETCC + cond);
executed 2610 times by 34 tests: return (TwoByteOpcodeID)(OP_SETCC + cond);
Executed by:
  • tst_examples
  • tst_flickableinterop
  • tst_qjsengine
  • tst_qjsvalue
  • tst_qqmlbinding
  • tst_qqmlecmascript
  • tst_qqmlinstantiator
  • tst_qqmlitemmodels
  • tst_qqmllistmodelworkerscript
  • tst_qqmllocale
  • tst_qqmlprofilerservice
  • tst_qqmlqt
  • tst_qqmlvaluetypeproviders
  • tst_qqmlxmlhttprequest
  • tst_qquickanimatedimage
  • tst_qquickanimationcontroller
  • tst_qquickbehaviors
  • tst_qquickcustomaffector
  • tst_qquickdraghandler
  • tst_qquickgridview
  • tst_qquickitem2
  • tst_qquicklayouts
  • tst_qquicklistview
  • tst_qquickmousearea
  • tst_qquickpositioners
  • ...
2610
208 }-
209-
210 typedef enum {-
211 GROUP1_OP_ADD = 0,-
212 GROUP1_OP_OR = 1,-
213 GROUP1_OP_ADC = 2,-
214 GROUP1_OP_AND = 4,-
215 GROUP1_OP_SUB = 5,-
216 GROUP1_OP_XOR = 6,-
217 GROUP1_OP_CMP = 7,-
218-
219 GROUP1A_OP_POP = 0,-
220 -
221 GROUP2_OP_ROL = 0,-
222 GROUP2_OP_ROR = 1,-
223 GROUP2_OP_RCL = 2,-
224 GROUP2_OP_RCR = 3,-
225 -
226 GROUP2_OP_SHL = 4,-
227 GROUP2_OP_SHR = 5,-
228 GROUP2_OP_SAR = 7,-
229-
230 GROUP3_OP_TEST = 0,-
231 GROUP3_OP_NOT = 2,-
232 GROUP3_OP_NEG = 3,-
233 GROUP3_OP_IDIV = 7,-
234-
235 GROUP5_OP_CALLN = 2,-
236 GROUP5_OP_JMPN = 4,-
237 GROUP5_OP_PUSH = 6,-
238-
239 GROUP11_MOV = 0,-
240-
241 GROUP14_OP_PSLLQ = 6,-
242 GROUP14_OP_PSRLQ = 2,-
243-
244 ESCAPE_DD_FSTP_doubleReal = 3,-
245 } GroupOpcodeID;-
246 -
247 class X86InstructionFormatter;-
248public:-
249-
250 X86Assembler()-
251 : m_indexOfLastWatchpoint(INT_MIN)-
252 , m_indexOfTailOfLastWatchpoint(INT_MIN)-
253 {-
254 }
executed 1162484 times by 153 tests: end of block
Executed by:
  • tst_bindingdependencyapi
  • tst_drawingmodes
  • tst_ecmascripttests
  • tst_examples
  • tst_flickableinterop
  • tst_multipointtoucharea_interop
  • tst_parserstress
  • tst_qjsengine
  • tst_qjsonbinding
  • tst_qjsvalue
  • tst_qjsvalueiterator
  • tst_qmlcachegen
  • tst_qmldiskcache
  • tst_qqmlapplicationengine
  • tst_qqmlbinding
  • tst_qqmlcomponent
  • tst_qqmlconnections
  • tst_qqmlconsole
  • tst_qqmlcontext
  • tst_qqmldebugclient
  • tst_qqmldebugjs
  • tst_qqmldebuglocal
  • tst_qqmldebugservice
  • tst_qqmlecmascript
  • tst_qqmlenginecleanup
  • ...
1162484
255-
256#if defined(V4_BOOTSTRAP)-
257 template <typename LabelType>-
258 class Jump {-
259 template<class TemplateAssemblerType>-
260 friend class AbstractMacroAssembler;-
261 friend class Call;-
262 template <typename, template <typename> class> friend class LinkBufferBase;-
263 public:-
264 Jump()-
265 {-
266 }-
267-
268 Jump(AssemblerLabel jmp)-
269 : m_label(jmp)-
270 {-
271 }-
272-
273 LabelType label() const-
274 {-
275 LabelType result;-
276 result.m_label = m_label;-
277 return result;-
278 }-
279-
280 void link(AbstractMacroAssembler<X86Assembler>* masm) const-
281 {-
282 masm->m_assembler.linkJump(m_label, masm->m_assembler.label());-
283 }-
284-
285 void linkTo(LabelType label, AbstractMacroAssembler<X86Assembler>* masm) const-
286 {-
287 masm->m_assembler.linkJump(m_label, label.label());-
288 }-
289-
290 bool isSet() const { return m_label.isSet(); }-
291-
292 private:-
293 AssemblerLabel m_label;-
294 };-
295#endif-
296-
297 // Stack operations:-
298-
299 void push_r(RegisterID reg)-
300 {-
301 m_formatter.oneByteOp(OP_PUSH_EAX, reg);-
302 }
executed 2369091 times by 153 tests: end of block
Executed by:
  • tst_bindingdependencyapi
  • tst_drawingmodes
  • tst_ecmascripttests
  • tst_examples
  • tst_flickableinterop
  • tst_multipointtoucharea_interop
  • tst_parserstress
  • tst_qjsengine
  • tst_qjsonbinding
  • tst_qjsvalue
  • tst_qjsvalueiterator
  • tst_qmlcachegen
  • tst_qmldiskcache
  • tst_qqmlapplicationengine
  • tst_qqmlbinding
  • tst_qqmlcomponent
  • tst_qqmlconnections
  • tst_qqmlconsole
  • tst_qqmlcontext
  • tst_qqmldebugclient
  • tst_qqmldebugjs
  • tst_qqmldebuglocal
  • tst_qqmldebugservice
  • tst_qqmlecmascript
  • tst_qqmlenginecleanup
  • ...
2369091
303-
304 void pop_r(RegisterID reg)-
305 {-
306 m_formatter.oneByteOp(OP_POP_EAX, reg);-
307 }
executed 6960700 times by 153 tests: end of block
Executed by:
  • tst_bindingdependencyapi
  • tst_drawingmodes
  • tst_ecmascripttests
  • tst_examples
  • tst_flickableinterop
  • tst_multipointtoucharea_interop
  • tst_parserstress
  • tst_qjsengine
  • tst_qjsonbinding
  • tst_qjsvalue
  • tst_qjsvalueiterator
  • tst_qmlcachegen
  • tst_qmldiskcache
  • tst_qqmlapplicationengine
  • tst_qqmlbinding
  • tst_qqmlcomponent
  • tst_qqmlconnections
  • tst_qqmlconsole
  • tst_qqmlcontext
  • tst_qqmldebugclient
  • tst_qqmldebugjs
  • tst_qqmldebuglocal
  • tst_qqmldebugservice
  • tst_qqmlecmascript
  • tst_qqmlenginecleanup
  • ...
6960700
308-
309 void push_i32(int imm)-
310 {-
311 m_formatter.oneByteOp(OP_PUSH_Iz);-
312 m_formatter.immediate32(imm);-
313 }
never executed: end of block
0
314-
315 void push_m(int offset, RegisterID base)-
316 {-
317 m_formatter.oneByteOp(OP_GROUP5_Ev, GROUP5_OP_PUSH, base, offset);-
318 }
never executed: end of block
0
319-
320 void pop_m(int offset, RegisterID base)-
321 {-
322 m_formatter.oneByteOp(OP_GROUP1A_Ev, GROUP1A_OP_POP, base, offset);-
323 }
never executed: end of block
0
324-
325 // Arithmetic operations:-
326-
327#if !CPU(X86_64)-
328 void adcl_im(int imm, const void* addr)-
329 {-
330 if (CAN_SIGN_EXTEND_8_32(imm)) {-
331 m_formatter.oneByteOp(OP_GROUP1_EvIb, GROUP1_OP_ADC, addr);-
332 m_formatter.immediate8(imm);-
333 } else {-
334 m_formatter.oneByteOp(OP_GROUP1_EvIz, GROUP1_OP_ADC, addr);-
335 m_formatter.immediate32(imm);-
336 }-
337 }-
338#endif-
339-
340 void addl_rr(RegisterID src, RegisterID dst)-
341 {-
342 m_formatter.oneByteOp(OP_ADD_EvGv, src, dst);-
343 }
executed 2130 times by 29 tests: end of block
Executed by:
  • tst_examples
  • tst_qjsengine
  • tst_qqmlbinding
  • tst_qqmlecmascript
  • tst_qqmlenginedebugservice
  • tst_qqmlprofilerservice
  • tst_qqmlproperty
  • tst_qquickaccessible
  • tst_qquickanimationcontroller
  • tst_qquickdesignersupport
  • tst_qquickdraghandler
  • tst_qquickflickable
  • tst_qquickgridview
  • tst_qquickimage
  • tst_qquickitemparticle
  • tst_qquicklayouts
  • tst_qquicklistview
  • tst_qquickloader
  • tst_qquickmousearea
  • tst_qquickpathview
  • tst_qquickpincharea
  • tst_qquickpositioners
  • tst_qquickrepeater
  • tst_qquicksmoothedanimation
  • tst_qquickstates
  • ...
2130
344-
345 void addl_mr(int offset, RegisterID base, RegisterID dst)-
346 {-
347 m_formatter.oneByteOp(OP_ADD_GvEv, dst, base, offset);-
348 }
never executed: end of block
0
349 -
350#if !CPU(X86_64)-
351 void addl_mr(const void* addr, RegisterID dst)-
352 {-
353 m_formatter.oneByteOp(OP_ADD_GvEv, dst, addr);-
354 }-
355#endif-
356-
357 void addl_rm(RegisterID src, int offset, RegisterID base)-
358 {-
359 m_formatter.oneByteOp(OP_ADD_EvGv, src, base, offset);-
360 }
never executed: end of block
0
361-
362 void addl_ir(int imm, RegisterID dst)-
363 {-
364 if (CAN_SIGN_EXTEND_8_32(imm)) {
CAN_SIGN_EXTEND_8_32(imm)Description
TRUEevaluated 3354681 times by 153 tests
Evaluated by:
  • tst_bindingdependencyapi
  • tst_drawingmodes
  • tst_ecmascripttests
  • tst_examples
  • tst_flickableinterop
  • tst_multipointtoucharea_interop
  • tst_parserstress
  • tst_qjsengine
  • tst_qjsonbinding
  • tst_qjsvalue
  • tst_qjsvalueiterator
  • tst_qmlcachegen
  • tst_qmldiskcache
  • tst_qqmlapplicationengine
  • tst_qqmlbinding
  • tst_qqmlcomponent
  • tst_qqmlconnections
  • tst_qqmlconsole
  • tst_qqmlcontext
  • tst_qqmldebugclient
  • tst_qqmldebugjs
  • tst_qqmldebuglocal
  • tst_qqmldebugservice
  • tst_qqmlecmascript
  • tst_qqmlenginecleanup
  • ...
FALSEnever evaluated
0-3354681
365 m_formatter.oneByteOp(OP_GROUP1_EvIb, GROUP1_OP_ADD, dst);-
366 m_formatter.immediate8(imm);-
367 } else {
executed 3359834 times by 153 tests: end of block
Executed by:
  • tst_bindingdependencyapi
  • tst_drawingmodes
  • tst_ecmascripttests
  • tst_examples
  • tst_flickableinterop
  • tst_multipointtoucharea_interop
  • tst_parserstress
  • tst_qjsengine
  • tst_qjsonbinding
  • tst_qjsvalue
  • tst_qjsvalueiterator
  • tst_qmlcachegen
  • tst_qmldiskcache
  • tst_qqmlapplicationengine
  • tst_qqmlbinding
  • tst_qqmlcomponent
  • tst_qqmlconnections
  • tst_qqmlconsole
  • tst_qqmlcontext
  • tst_qqmldebugclient
  • tst_qqmldebugjs
  • tst_qqmldebuglocal
  • tst_qqmldebugservice
  • tst_qqmlecmascript
  • tst_qqmlenginecleanup
  • ...
3359834
368 m_formatter.oneByteOp(OP_GROUP1_EvIz, GROUP1_OP_ADD, dst);-
369 m_formatter.immediate32(imm);-
370 }
never executed: end of block
0
371 }-
372-
373 void addl_im(int imm, int offset, RegisterID base)-
374 {-
375 if (CAN_SIGN_EXTEND_8_32(imm)) {
CAN_SIGN_EXTEND_8_32(imm)Description
TRUEnever evaluated
FALSEnever evaluated
0
376 m_formatter.oneByteOp(OP_GROUP1_EvIb, GROUP1_OP_ADD, base, offset);-
377 m_formatter.immediate8(imm);-
378 } else {
never executed: end of block
0
379 m_formatter.oneByteOp(OP_GROUP1_EvIz, GROUP1_OP_ADD, base, offset);-
380 m_formatter.immediate32(imm);-
381 }
never executed: end of block
0
382 }-
383-
384#if CPU(X86_64)-
385 void addq_rr(RegisterID src, RegisterID dst)-
386 {-
387 m_formatter.oneByteOp64(OP_ADD_EvGv, src, dst);-
388 }
never executed: end of block
0
389-
390 void addq_mr(int offset, RegisterID base, RegisterID dst)-
391 {-
392 m_formatter.oneByteOp64(OP_ADD_GvEv, dst, base, offset);-
393 }
never executed: end of block
0
394-
395 void addq_ir(int imm, RegisterID dst)-
396 {-
397 if (CAN_SIGN_EXTEND_8_32(imm)) {
CAN_SIGN_EXTEND_8_32(imm)Description
TRUEevaluated 15354 times by 65 tests
Evaluated by:
  • tst_ecmascripttests
  • tst_examples
  • tst_flickableinterop
  • tst_multipointtoucharea_interop
  • tst_qjsengine
  • tst_qjsvalue
  • tst_qqmlbinding
  • tst_qqmlcomponent
  • tst_qqmlcontext
  • tst_qqmlecmascript
  • tst_qqmlenginedebugservice
  • tst_qqmlinstantiator
  • tst_qqmlitemmodels
  • tst_qqmllistmodel
  • tst_qqmllistmodelworkerscript
  • tst_qqmllocale
  • tst_qqmlnotifier
  • tst_qqmlprofilerservice
  • tst_qqmlproperty
  • tst_qqmlqt
  • tst_qqmlvaluetypeproviders
  • tst_qqmlvaluetypes
  • tst_qqmlxmlhttprequest
  • tst_qquickaccessible
  • tst_qquickanimatedimage
  • ...
FALSEnever evaluated
0-15354
398 m_formatter.oneByteOp64(OP_GROUP1_EvIb, GROUP1_OP_ADD, dst);-
399 m_formatter.immediate8(imm);-
400 } else {
executed 15352 times by 65 tests: end of block
Executed by:
  • tst_ecmascripttests
  • tst_examples
  • tst_flickableinterop
  • tst_multipointtoucharea_interop
  • tst_qjsengine
  • tst_qjsvalue
  • tst_qqmlbinding
  • tst_qqmlcomponent
  • tst_qqmlcontext
  • tst_qqmlecmascript
  • tst_qqmlenginedebugservice
  • tst_qqmlinstantiator
  • tst_qqmlitemmodels
  • tst_qqmllistmodel
  • tst_qqmllistmodelworkerscript
  • tst_qqmllocale
  • tst_qqmlnotifier
  • tst_qqmlprofilerservice
  • tst_qqmlproperty
  • tst_qqmlqt
  • tst_qqmlvaluetypeproviders
  • tst_qqmlvaluetypes
  • tst_qqmlxmlhttprequest
  • tst_qquickaccessible
  • tst_qquickanimatedimage
  • ...
15352
401 m_formatter.oneByteOp64(OP_GROUP1_EvIz, GROUP1_OP_ADD, dst);-
402 m_formatter.immediate32(imm);-
403 }
never executed: end of block
0
404 }-
405-
406 void addq_im(int imm, int offset, RegisterID base)-
407 {-
408 if (CAN_SIGN_EXTEND_8_32(imm)) {
CAN_SIGN_EXTEND_8_32(imm)Description
TRUEnever evaluated
FALSEnever evaluated
0
409 m_formatter.oneByteOp64(OP_GROUP1_EvIb, GROUP1_OP_ADD, base, offset);-
410 m_formatter.immediate8(imm);-
411 } else {
never executed: end of block
0
412 m_formatter.oneByteOp64(OP_GROUP1_EvIz, GROUP1_OP_ADD, base, offset);-
413 m_formatter.immediate32(imm);-
414 }
never executed: end of block
0
415 }-
416#else-
417 void addl_im(int imm, const void* addr)-
418 {-
419 if (CAN_SIGN_EXTEND_8_32(imm)) {-
420 m_formatter.oneByteOp(OP_GROUP1_EvIb, GROUP1_OP_ADD, addr);-
421 m_formatter.immediate8(imm);-
422 } else {-
423 m_formatter.oneByteOp(OP_GROUP1_EvIz, GROUP1_OP_ADD, addr);-
424 m_formatter.immediate32(imm);-
425 }-
426 }-
427#endif-
428-
429 void andl_rr(RegisterID src, RegisterID dst)-
430 {-
431 m_formatter.oneByteOp(OP_AND_EvGv, src, dst);-
432 }
never executed: end of block
0
433-
434 void andl_mr(int offset, RegisterID base, RegisterID dst)-
435 {-
436 m_formatter.oneByteOp(OP_AND_GvEv, dst, base, offset);-
437 }
never executed: end of block
0
438-
439 void andl_rm(RegisterID src, int offset, RegisterID base)-
440 {-
441 m_formatter.oneByteOp(OP_AND_EvGv, src, base, offset);-
442 }
never executed: end of block
0
443-
444 void andl_ir(int imm, RegisterID dst)-
445 {-
446 if (CAN_SIGN_EXTEND_8_32(imm)) {
CAN_SIGN_EXTEND_8_32(imm)Description
TRUEevaluated 3812 times by 38 tests
Evaluated by:
  • tst_examples
  • tst_flickableinterop
  • tst_multipointtoucharea_interop
  • tst_qjsengine
  • tst_qqmlbinding
  • tst_qqmlecmascript
  • tst_qqmlinstantiator
  • tst_qqmlitemmodels
  • tst_qqmllistmodel
  • tst_qqmllistmodelworkerscript
  • tst_qqmllocale
  • tst_qqmlprofilerservice
  • tst_qqmlqt
  • tst_qqmlxmlhttprequest
  • tst_qquickanimatedimage
  • tst_qquickanimationcontroller
  • tst_qquickbehaviors
  • tst_qquickcustomaffector
  • tst_qquickdraghandler
  • tst_qquickdroparea
  • tst_qquickgridview
  • tst_qquickitem2
  • tst_qquicklayouts
  • tst_qquicklistview
  • tst_qquickmousearea
  • ...
FALSEnever evaluated
0-3812
447 m_formatter.oneByteOp(OP_GROUP1_EvIb, GROUP1_OP_AND, dst);-
448 m_formatter.immediate8(imm);-
449 } else {
executed 3812 times by 38 tests: end of block
Executed by:
  • tst_examples
  • tst_flickableinterop
  • tst_multipointtoucharea_interop
  • tst_qjsengine
  • tst_qqmlbinding
  • tst_qqmlecmascript
  • tst_qqmlinstantiator
  • tst_qqmlitemmodels
  • tst_qqmllistmodel
  • tst_qqmllistmodelworkerscript
  • tst_qqmllocale
  • tst_qqmlprofilerservice
  • tst_qqmlqt
  • tst_qqmlxmlhttprequest
  • tst_qquickanimatedimage
  • tst_qquickanimationcontroller
  • tst_qquickbehaviors
  • tst_qquickcustomaffector
  • tst_qquickdraghandler
  • tst_qquickdroparea
  • tst_qquickgridview
  • tst_qquickitem2
  • tst_qquicklayouts
  • tst_qquicklistview
  • tst_qquickmousearea
  • ...
3812
450 m_formatter.oneByteOp(OP_GROUP1_EvIz, GROUP1_OP_AND, dst);-
451 m_formatter.immediate32(imm);-
452 }
never executed: end of block
0
453 }-
454-
455 void andl_im(int imm, int offset, RegisterID base)-
456 {-
457 if (CAN_SIGN_EXTEND_8_32(imm)) {
CAN_SIGN_EXTEND_8_32(imm)Description
TRUEnever evaluated
FALSEnever evaluated
0
458 m_formatter.oneByteOp(OP_GROUP1_EvIb, GROUP1_OP_AND, base, offset);-
459 m_formatter.immediate8(imm);-
460 } else {
never executed: end of block
0
461 m_formatter.oneByteOp(OP_GROUP1_EvIz, GROUP1_OP_AND, base, offset);-
462 m_formatter.immediate32(imm);-
463 }
never executed: end of block
0
464 }-
465-
466#if CPU(X86_64)-
467 void andq_rr(RegisterID src, RegisterID dst)-
468 {-
469 m_formatter.oneByteOp64(OP_AND_EvGv, src, dst);-
470 }
never executed: end of block
0
471-
472 void andq_ir(int imm, RegisterID dst)-
473 {-
474 if (CAN_SIGN_EXTEND_8_32(imm)) {
CAN_SIGN_EXTEND_8_32(imm)Description
TRUEnever evaluated
FALSEnever evaluated
0
475 m_formatter.oneByteOp64(OP_GROUP1_EvIb, GROUP1_OP_AND, dst);-
476 m_formatter.immediate8(imm);-
477 } else {
never executed: end of block
0
478 m_formatter.oneByteOp64(OP_GROUP1_EvIz, GROUP1_OP_AND, dst);-
479 m_formatter.immediate32(imm);-
480 }
never executed: end of block
0
481 }-
482#else-
483 void andl_im(int imm, const void* addr)-
484 {-
485 if (CAN_SIGN_EXTEND_8_32(imm)) {-
486 m_formatter.oneByteOp(OP_GROUP1_EvIb, GROUP1_OP_AND, addr);-
487 m_formatter.immediate8(imm);-
488 } else {-
489 m_formatter.oneByteOp(OP_GROUP1_EvIz, GROUP1_OP_AND, addr);-
490 m_formatter.immediate32(imm);-
491 }-
492 }-
493#endif-
494-
495 void negl_r(RegisterID dst)-
496 {-
497 m_formatter.oneByteOp(OP_GROUP3_Ev, GROUP3_OP_NEG, dst);-
498 }
never executed: end of block
0
499-
500#if CPU(X86_64)-
501 void negq_r(RegisterID dst)-
502 {-
503 m_formatter.oneByteOp64(OP_GROUP3_Ev, GROUP3_OP_NEG, dst);-
504 }
never executed: end of block
0
505#endif-
506-
507 void negl_m(int offset, RegisterID base)-
508 {-
509 m_formatter.oneByteOp(OP_GROUP3_Ev, GROUP3_OP_NEG, base, offset);-
510 }
never executed: end of block
0
511-
512 void notl_r(RegisterID dst)-
513 {-
514 m_formatter.oneByteOp(OP_GROUP3_Ev, GROUP3_OP_NOT, dst);-
515 }
never executed: end of block
0
516-
517 void notl_m(int offset, RegisterID base)-
518 {-
519 m_formatter.oneByteOp(OP_GROUP3_Ev, GROUP3_OP_NOT, base, offset);-
520 }
never executed: end of block
0
521-
522 void orl_rr(RegisterID src, RegisterID dst)-
523 {-
524 m_formatter.oneByteOp(OP_OR_EvGv, src, dst);-
525 }
executed 14 times by 1 test: end of block
Executed by:
  • tst_qquicklistview
14
526-
527 void orl_mr(int offset, RegisterID base, RegisterID dst)-
528 {-
529 m_formatter.oneByteOp(OP_OR_GvEv, dst, base, offset);-
530 }
never executed: end of block
0
531-
532 void orl_rm(RegisterID src, int offset, RegisterID base)-
533 {-
534 m_formatter.oneByteOp(OP_OR_EvGv, src, base, offset);-
535 }
never executed: end of block
0
536-
537 void orl_ir(int imm, RegisterID dst)-
538 {-
539 if (CAN_SIGN_EXTEND_8_32(imm)) {
CAN_SIGN_EXTEND_8_32(imm)Description
TRUEevaluated 92 times by 3 tests
Evaluated by:
  • tst_ecmascripttests
  • tst_qjsengine
  • tst_qjsvalue
FALSEevaluated 138 times by 3 tests
Evaluated by:
  • tst_ecmascripttests
  • tst_qjsengine
  • tst_qjsvalue
92-138
540 m_formatter.oneByteOp(OP_GROUP1_EvIb, GROUP1_OP_OR, dst);-
541 m_formatter.immediate8(imm);-
542 } else {
executed 92 times by 3 tests: end of block
Executed by:
  • tst_ecmascripttests
  • tst_qjsengine
  • tst_qjsvalue
92
543 m_formatter.oneByteOp(OP_GROUP1_EvIz, GROUP1_OP_OR, dst);-
544 m_formatter.immediate32(imm);-
545 }
executed 138 times by 3 tests: end of block
Executed by:
  • tst_ecmascripttests
  • tst_qjsengine
  • tst_qjsvalue
138
546 }-
547-
548 void orl_im(int imm, int offset, RegisterID base)-
549 {-
550 if (CAN_SIGN_EXTEND_8_32(imm)) {
CAN_SIGN_EXTEND_8_32(imm)Description
TRUEnever evaluated
FALSEnever evaluated
0
551 m_formatter.oneByteOp(OP_GROUP1_EvIb, GROUP1_OP_OR, base, offset);-
552 m_formatter.immediate8(imm);-
553 } else {
never executed: end of block
0
554 m_formatter.oneByteOp(OP_GROUP1_EvIz, GROUP1_OP_OR, base, offset);-
555 m_formatter.immediate32(imm);-
556 }
never executed: end of block
0
557 }-
558-
559#if CPU(X86_64)-
560 void orq_rr(RegisterID src, RegisterID dst)-
561 {-
562 m_formatter.oneByteOp64(OP_OR_EvGv, src, dst);-
563 }
executed 9250 times by 48 tests: end of block
Executed by:
  • tst_examples
  • tst_flickableinterop
  • tst_multipointtoucharea_interop
  • tst_qjsengine
  • tst_qjsvalue
  • tst_qqmlbinding
  • tst_qqmlecmascript
  • tst_qqmlenginedebugservice
  • tst_qqmlinstantiator
  • tst_qqmlitemmodels
  • tst_qqmllistmodelworkerscript
  • tst_qqmllocale
  • tst_qqmlprofilerservice
  • tst_qqmlproperty
  • tst_qqmlqt
  • tst_qqmlvaluetypeproviders
  • tst_qqmlxmlhttprequest
  • tst_qquickaccessible
  • tst_qquickanimatedimage
  • tst_qquickanimationcontroller
  • tst_qquickbehaviors
  • tst_qquickcustomaffector
  • tst_qquickdesignersupport
  • tst_qquickdraghandler
  • tst_qquickdroparea
  • ...
9250
564-
565 void orq_ir(int imm, RegisterID dst)-
566 {-
567 if (CAN_SIGN_EXTEND_8_32(imm)) {
CAN_SIGN_EXTEND_8_32(imm)Description
TRUEnever evaluated
FALSEnever evaluated
0
568 m_formatter.oneByteOp64(OP_GROUP1_EvIb, GROUP1_OP_OR, dst);-
569 m_formatter.immediate8(imm);-
570 } else {
never executed: end of block
0
571 m_formatter.oneByteOp64(OP_GROUP1_EvIz, GROUP1_OP_OR, dst);-
572 m_formatter.immediate32(imm);-
573 }
never executed: end of block
0
574 }-
575#else-
576 void orl_im(int imm, const void* addr)-
577 {-
578 if (CAN_SIGN_EXTEND_8_32(imm)) {-
579 m_formatter.oneByteOp(OP_GROUP1_EvIb, GROUP1_OP_OR, addr);-
580 m_formatter.immediate8(imm);-
581 } else {-
582 m_formatter.oneByteOp(OP_GROUP1_EvIz, GROUP1_OP_OR, addr);-
583 m_formatter.immediate32(imm);-
584 }-
585 }-
586-
587 void orl_rm(RegisterID src, const void* addr)-
588 {-
589 m_formatter.oneByteOp(OP_OR_EvGv, src, addr);-
590 }-
591#endif-
592-
593 void subl_rr(RegisterID src, RegisterID dst)-
594 {-
595 m_formatter.oneByteOp(OP_SUB_EvGv, src, dst);-
596 }
executed 720 times by 22 tests: end of block
Executed by:
  • tst_ecmascripttests
  • tst_examples
  • tst_flickableinterop
  • tst_multipointtoucharea_interop
  • tst_qjsengine
  • tst_qqmlbinding
  • tst_qqmlecmascript
  • tst_qqmlvaluetypeproviders
  • tst_qquickaccessible
  • tst_qquickanimationcontroller
  • tst_qquickdesignersupport
  • tst_qquickdraghandler
  • tst_qquickgridview
  • tst_qquicklayouts
  • tst_qquicklistview
  • tst_qquickmousearea
  • tst_qquickmultipointtoucharea
  • tst_qquickpincharea
  • tst_qquickrepeater
  • tst_qquicksmoothedanimation
  • tst_qquicktaphandler
  • tst_qquicktext
720
597-
598 void subl_mr(int offset, RegisterID base, RegisterID dst)-
599 {-
600 m_formatter.oneByteOp(OP_SUB_GvEv, dst, base, offset);-
601 }
never executed: end of block
0
602-
603 void subl_rm(RegisterID src, int offset, RegisterID base)-
604 {-
605 m_formatter.oneByteOp(OP_SUB_EvGv, src, base, offset);-
606 }
never executed: end of block
0
607-
608 void subl_ir(int imm, RegisterID dst)-
609 {-
610 if (CAN_SIGN_EXTEND_8_32(imm)) {
CAN_SIGN_EXTEND_8_32(imm)Description
TRUEevaluated 1056849 times by 16 tests
Evaluated by:
  • tst_ecmascripttests
  • tst_examples
  • tst_qjsengine
  • tst_qjsvalue
  • tst_qqmlecmascript
  • tst_qqmllistmodelworkerscript
  • tst_qqmlxmlhttprequest
  • tst_qquickanimationcontroller
  • tst_qquickitemparticle
  • tst_qquicklayouts
  • tst_qquicklistview
  • tst_qquickpositioners
  • tst_qquickrepeater
  • tst_qquicktextinput
  • tst_qquickworkerscript
  • tst_testfiltering
FALSEnever evaluated
0-1056849
611 m_formatter.oneByteOp(OP_GROUP1_EvIb, GROUP1_OP_SUB, dst);-
612 m_formatter.immediate8(imm);-
613 } else {
executed 1057530 times by 16 tests: end of block
Executed by:
  • tst_ecmascripttests
  • tst_examples
  • tst_qjsengine
  • tst_qjsvalue
  • tst_qqmlecmascript
  • tst_qqmllistmodelworkerscript
  • tst_qqmlxmlhttprequest
  • tst_qquickanimationcontroller
  • tst_qquickitemparticle
  • tst_qquicklayouts
  • tst_qquicklistview
  • tst_qquickpositioners
  • tst_qquickrepeater
  • tst_qquicktextinput
  • tst_qquickworkerscript
  • tst_testfiltering
1057530
614 m_formatter.oneByteOp(OP_GROUP1_EvIz, GROUP1_OP_SUB, dst);-
615 m_formatter.immediate32(imm);-
616 }
never executed: end of block
0
617 }-
618 -
619 void subl_im(int imm, int offset, RegisterID base)-
620 {-
621 if (CAN_SIGN_EXTEND_8_32(imm)) {
CAN_SIGN_EXTEND_8_32(imm)Description
TRUEnever evaluated
FALSEnever evaluated
0
622 m_formatter.oneByteOp(OP_GROUP1_EvIb, GROUP1_OP_SUB, base, offset);-
623 m_formatter.immediate8(imm);-
624 } else {
never executed: end of block
0
625 m_formatter.oneByteOp(OP_GROUP1_EvIz, GROUP1_OP_SUB, base, offset);-
626 m_formatter.immediate32(imm);-
627 }
never executed: end of block
0
628 }-
629-
630#if CPU(X86_64)-
631 void subq_rr(RegisterID src, RegisterID dst)-
632 {-
633 m_formatter.oneByteOp64(OP_SUB_EvGv, src, dst);-
634 }
never executed: end of block
0
635-
636 void subq_ir(int imm, RegisterID dst)-
637 {-
638 if (CAN_SIGN_EXTEND_8_32(imm)) {
CAN_SIGN_EXTEND_8_32(imm)Description
TRUEevaluated 1213 times by 16 tests
Evaluated by:
  • tst_ecmascripttests
  • tst_examples
  • tst_qjsengine
  • tst_qjsvalue
  • tst_qqmlbinding
  • tst_qqmlinstantiator
  • tst_qqmllocale
  • tst_qqmlxmlhttprequest
  • tst_qquickanimationcontroller
  • tst_qquickgridview
  • tst_qquicklayouts
  • tst_qquicklistview
  • tst_qquickpositioners
  • tst_qquicktextinput
  • tst_qquickworkerscript
  • tst_testfiltering
FALSEevaluated 12 times by 1 test
Evaluated by:
  • tst_ecmascripttests
12-1213
639 m_formatter.oneByteOp64(OP_GROUP1_EvIb, GROUP1_OP_SUB, dst);-
640 m_formatter.immediate8(imm);-
641 } else {
executed 1218 times by 16 tests: end of block
Executed by:
  • tst_ecmascripttests
  • tst_examples
  • tst_qjsengine
  • tst_qjsvalue
  • tst_qqmlbinding
  • tst_qqmlinstantiator
  • tst_qqmllocale
  • tst_qqmlxmlhttprequest
  • tst_qquickanimationcontroller
  • tst_qquickgridview
  • tst_qquicklayouts
  • tst_qquicklistview
  • tst_qquickpositioners
  • tst_qquicktextinput
  • tst_qquickworkerscript
  • tst_testfiltering
1218
642 m_formatter.oneByteOp64(OP_GROUP1_EvIz, GROUP1_OP_SUB, dst);-
643 m_formatter.immediate32(imm);-
644 }
executed 12 times by 1 test: end of block
Executed by:
  • tst_ecmascripttests
12
645 }-
646#else-
647 void subl_im(int imm, const void* addr)-
648 {-
649 if (CAN_SIGN_EXTEND_8_32(imm)) {-
650 m_formatter.oneByteOp(OP_GROUP1_EvIb, GROUP1_OP_SUB, addr);-
651 m_formatter.immediate8(imm);-
652 } else {-
653 m_formatter.oneByteOp(OP_GROUP1_EvIz, GROUP1_OP_SUB, addr);-
654 m_formatter.immediate32(imm);-
655 }-
656 }-
657#endif-
658-
659 void xorl_rr(RegisterID src, RegisterID dst)-
660 {-
661 m_formatter.oneByteOp(OP_XOR_EvGv, src, dst);-
662 }
executed 2305469 times by 153 tests: end of block
Executed by:
  • tst_bindingdependencyapi
  • tst_drawingmodes
  • tst_ecmascripttests
  • tst_examples
  • tst_flickableinterop
  • tst_multipointtoucharea_interop
  • tst_parserstress
  • tst_qjsengine
  • tst_qjsonbinding
  • tst_qjsvalue
  • tst_qjsvalueiterator
  • tst_qmlcachegen
  • tst_qmldiskcache
  • tst_qqmlapplicationengine
  • tst_qqmlbinding
  • tst_qqmlcomponent
  • tst_qqmlconnections
  • tst_qqmlconsole
  • tst_qqmlcontext
  • tst_qqmldebugclient
  • tst_qqmldebugjs
  • tst_qqmldebuglocal
  • tst_qqmldebugservice
  • tst_qqmlecmascript
  • tst_qqmlenginecleanup
  • ...
2305469
663-
664 void xorl_mr(int offset, RegisterID base, RegisterID dst)-
665 {-
666 m_formatter.oneByteOp(OP_XOR_GvEv, dst, base, offset);-
667 }
never executed: end of block
0
668-
669 void xorl_rm(RegisterID src, int offset, RegisterID base)-
670 {-
671 m_formatter.oneByteOp(OP_XOR_EvGv, src, base, offset);-
672 }
never executed: end of block
0
673-
674 void xorl_im(int imm, int offset, RegisterID base)-
675 {-
676 if (CAN_SIGN_EXTEND_8_32(imm)) {
CAN_SIGN_EXTEND_8_32(imm)Description
TRUEnever evaluated
FALSEnever evaluated
0
677 m_formatter.oneByteOp(OP_GROUP1_EvIb, GROUP1_OP_XOR, base, offset);-
678 m_formatter.immediate8(imm);-
679 } else {
never executed: end of block
0
680 m_formatter.oneByteOp(OP_GROUP1_EvIz, GROUP1_OP_XOR, base, offset);-
681 m_formatter.immediate32(imm);-
682 }
never executed: end of block
0
683 }-
684-
685 void xorl_ir(int imm, RegisterID dst)-
686 {-
687 if (CAN_SIGN_EXTEND_8_32(imm)) {
CAN_SIGN_EXTEND_8_32(imm)Description
TRUEevaluated 56 times by 6 tests
Evaluated by:
  • tst_qquickanimationcontroller
  • tst_qquicklayouts
  • tst_qquicklistview
  • tst_qquickmousearea
  • tst_qquickrepeater
  • tst_signalspy
FALSEnever evaluated
0-56
688 m_formatter.oneByteOp(OP_GROUP1_EvIb, GROUP1_OP_XOR, dst);-
689 m_formatter.immediate8(imm);-
690 } else {
executed 56 times by 6 tests: end of block
Executed by:
  • tst_qquickanimationcontroller
  • tst_qquicklayouts
  • tst_qquicklistview
  • tst_qquickmousearea
  • tst_qquickrepeater
  • tst_signalspy
56
691 m_formatter.oneByteOp(OP_GROUP1_EvIz, GROUP1_OP_XOR, dst);-
692 m_formatter.immediate32(imm);-
693 }
never executed: end of block
0
694 }-
695-
696#if CPU(X86_64)-
697 void xorq_rr(RegisterID src, RegisterID dst)-
698 {-
699 m_formatter.oneByteOp64(OP_XOR_EvGv, src, dst);-
700 }
never executed: end of block
0
701-
702 void xorq_ir(int imm, RegisterID dst)-
703 {-
704 if (CAN_SIGN_EXTEND_8_32(imm)) {
CAN_SIGN_EXTEND_8_32(imm)Description
TRUEnever evaluated
FALSEnever evaluated
0
705 m_formatter.oneByteOp64(OP_GROUP1_EvIb, GROUP1_OP_XOR, dst);-
706 m_formatter.immediate8(imm);-
707 } else {
never executed: end of block
0
708 m_formatter.oneByteOp64(OP_GROUP1_EvIz, GROUP1_OP_XOR, dst);-
709 m_formatter.immediate32(imm);-
710 }
never executed: end of block
0
711 }-
712 -
713 void xorq_rm(RegisterID src, int offset, RegisterID base)-
714 {-
715 m_formatter.oneByteOp64(OP_XOR_EvGv, src, base, offset);-
716 }
never executed: end of block
0
717 -
718 void rorq_i8r(int imm, RegisterID dst)-
719 {-
720 if (imm == 1)
imm == 1Description
TRUEnever evaluated
FALSEnever evaluated
0
721 m_formatter.oneByteOp64(OP_GROUP2_Ev1, GROUP2_OP_ROR, dst);
never executed: m_formatter.oneByteOp64(OP_GROUP2_Ev1, GROUP2_OP_ROR, dst);
0
722 else {-
723 m_formatter.oneByteOp64(OP_GROUP2_EvIb, GROUP2_OP_ROR, dst);-
724 m_formatter.immediate8(imm);-
725 }
never executed: end of block
0
726 }-
727-
728 void sarq_CLr(RegisterID dst)-
729 {-
730 m_formatter.oneByteOp64(OP_GROUP2_EvCL, GROUP2_OP_SAR, dst);-
731 }
never executed: end of block
0
732-
733 void sarq_i8r(int imm, RegisterID dst)-
734 {-
735 if (imm == 1)
imm == 1Description
TRUEnever evaluated
FALSEevaluated 8 times by 1 test
Evaluated by:
  • tst_signalspy
0-8
736 m_formatter.oneByteOp64(OP_GROUP2_Ev1, GROUP2_OP_SAR, dst);
never executed: m_formatter.oneByteOp64(OP_GROUP2_Ev1, GROUP2_OP_SAR, dst);
0
737 else {-
738 m_formatter.oneByteOp64(OP_GROUP2_EvIb, GROUP2_OP_SAR, dst);-
739 m_formatter.immediate8(imm);-
740 }
executed 8 times by 1 test: end of block
Executed by:
  • tst_signalspy
8
741 }-
742-
743 void shrq_i8r(int imm, RegisterID dst)-
744 {-
745 // ### doesn't work when removing the "0 &&"-
746 if (0 && imm == 1)
dead code: imm == 1
dead code: m_formatter.oneByteOp64(OP_GROUP2_Ev1, GROUP2_OP_SHR, dst);
-
747 m_formatter.oneByteOp64(OP_GROUP2_Ev1, GROUP2_OP_SHR, dst);
dead code: m_formatter.oneByteOp64(OP_GROUP2_Ev1, GROUP2_OP_SHR, dst);
-
748 else {-
749 m_formatter.oneByteOp64(OP_GROUP2_EvIb, GROUP2_OP_SHR, dst);-
750 m_formatter.immediate8(imm);-
751 }
executed 16462 times by 50 tests: end of block
Executed by:
  • tst_examples
  • tst_flickableinterop
  • tst_multipointtoucharea_interop
  • tst_qjsengine
  • tst_qjsvalue
  • tst_qqmlbinding
  • tst_qqmlecmascript
  • tst_qqmlenginedebugservice
  • tst_qqmlinstantiator
  • tst_qqmlitemmodels
  • tst_qqmllistmodel
  • tst_qqmllistmodelworkerscript
  • tst_qqmllocale
  • tst_qqmlprofilerservice
  • tst_qqmlproperty
  • tst_qqmlqt
  • tst_qqmlvaluetypeproviders
  • tst_qqmlxmlhttprequest
  • tst_qquickaccessible
  • tst_qquickanimatedimage
  • tst_qquickanimationcontroller
  • tst_qquickbehaviors
  • tst_qquickcustomaffector
  • tst_qquickdesignersupport
  • tst_qquickdraghandler
  • ...
16462
752 }-
753-
754 void shrq_CLr(RegisterID dst)-
755 {-
756 m_formatter.oneByteOp64(OP_GROUP2_EvCL, GROUP2_OP_SHR, dst);-
757 }
never executed: end of block
0
758-
759 void shlq_i8r(int imm, RegisterID dst)-
760 {-
761 // ### doesn't work when removing the "0 &&"-
762 if (0 && imm == 1)
dead code: imm == 1
dead code: m_formatter.oneByteOp64(OP_GROUP2_Ev1, GROUP2_OP_SHL, dst);
-
763 m_formatter.oneByteOp64(OP_GROUP2_Ev1, GROUP2_OP_SHL, dst);
dead code: m_formatter.oneByteOp64(OP_GROUP2_Ev1, GROUP2_OP_SHL, dst);
-
764 else {-
765 m_formatter.oneByteOp64(OP_GROUP2_EvIb, GROUP2_OP_SHL, dst);-
766 m_formatter.immediate8(imm);-
767 }
never executed: end of block
0
768 }-
769-
770 void shlq_CLr(RegisterID dst)-
771 {-
772 m_formatter.oneByteOp64(OP_GROUP2_EvCL, GROUP2_OP_SHL, dst);-
773 }
never executed: end of block
0
774#endif-
775-
776 void sarl_i8r(int imm, RegisterID dst)-
777 {-
778 if (imm == 1)
imm == 1Description
TRUEnever evaluated
FALSEnever evaluated
0
779 m_formatter.oneByteOp(OP_GROUP2_Ev1, GROUP2_OP_SAR, dst);
never executed: m_formatter.oneByteOp(OP_GROUP2_Ev1, GROUP2_OP_SAR, dst);
0
780 else {-
781 m_formatter.oneByteOp(OP_GROUP2_EvIb, GROUP2_OP_SAR, dst);-
782 m_formatter.immediate8(imm);-
783 }
never executed: end of block
0
784 }-
785-
786 void sarl_CLr(RegisterID dst)-
787 {-
788 m_formatter.oneByteOp(OP_GROUP2_EvCL, GROUP2_OP_SAR, dst);-
789 }
never executed: end of block
0
790 -
791 void shrl_i8r(int imm, RegisterID dst)-
792 {-
793 if (imm == 1)
imm == 1Description
TRUEnever evaluated
FALSEnever evaluated
0
794 m_formatter.oneByteOp(OP_GROUP2_Ev1, GROUP2_OP_SHR, dst);
never executed: m_formatter.oneByteOp(OP_GROUP2_Ev1, GROUP2_OP_SHR, dst);
0
795 else {-
796 m_formatter.oneByteOp(OP_GROUP2_EvIb, GROUP2_OP_SHR, dst);-
797 m_formatter.immediate8(imm);-
798 }
never executed: end of block
0
799 }-
800 -
801 void shrl_CLr(RegisterID dst)-
802 {-
803 m_formatter.oneByteOp(OP_GROUP2_EvCL, GROUP2_OP_SHR, dst);-
804 }
never executed: end of block
0
805-
806 void shll_i8r(int imm, RegisterID dst)-
807 {-
808 if (imm == 1)
imm == 1Description
TRUEnever evaluated
FALSEnever evaluated
0
809 m_formatter.oneByteOp(OP_GROUP2_Ev1, GROUP2_OP_SHL, dst);
never executed: m_formatter.oneByteOp(OP_GROUP2_Ev1, GROUP2_OP_SHL, dst);
0
810 else {-
811 m_formatter.oneByteOp(OP_GROUP2_EvIb, GROUP2_OP_SHL, dst);-
812 m_formatter.immediate8(imm);-
813 }
never executed: end of block
0
814 }-
815-
816 void shll_CLr(RegisterID dst)-
817 {-
818 m_formatter.oneByteOp(OP_GROUP2_EvCL, GROUP2_OP_SHL, dst);-
819 }
never executed: end of block
0
820-
821 void imull_rr(RegisterID src, RegisterID dst)-
822 {-
823 m_formatter.twoByteOp(OP2_IMUL_GvEv, dst, src);-
824 }
executed 896 times by 13 tests: end of block
Executed by:
  • tst_examples
  • tst_flickableinterop
  • tst_qqmlecmascript
  • tst_qquickaccessible
  • tst_qquickdraghandler
  • tst_qquickgridview
  • tst_qquickitem2
  • tst_qquicklayouts
  • tst_qquicklistview
  • tst_qquickpositioners
  • tst_qquickrepeater
  • tst_qquicktaphandler
  • tst_qquicktext
896
825-
826 void imull_mr(int offset, RegisterID base, RegisterID dst)-
827 {-
828 m_formatter.twoByteOp(OP2_IMUL_GvEv, dst, base, offset);-
829 }
never executed: end of block
0
830-
831 void imull_i32r(RegisterID src, int32_t value, RegisterID dst)-
832 {-
833 m_formatter.oneByteOp(OP_IMUL_GvEvIz, dst, src);-
834 m_formatter.immediate32(value);-
835 }
never executed: end of block
0
836-
837 void idivl_r(RegisterID dst)-
838 {-
839 m_formatter.oneByteOp(OP_GROUP3_Ev, GROUP3_OP_IDIV, dst);-
840 }
never executed: end of block
0
841-
842 // Comparisons:-
843-
844 void cmpl_rr(RegisterID src, RegisterID dst)-
845 {-
846 m_formatter.oneByteOp(OP_CMP_EvGv, src, dst);-
847 }
executed 4605396 times by 153 tests: end of block
Executed by:
  • tst_bindingdependencyapi
  • tst_drawingmodes
  • tst_ecmascripttests
  • tst_examples
  • tst_flickableinterop
  • tst_multipointtoucharea_interop
  • tst_parserstress
  • tst_qjsengine
  • tst_qjsonbinding
  • tst_qjsvalue
  • tst_qjsvalueiterator
  • tst_qmlcachegen
  • tst_qmldiskcache
  • tst_qqmlapplicationengine
  • tst_qqmlbinding
  • tst_qqmlcomponent
  • tst_qqmlconnections
  • tst_qqmlconsole
  • tst_qqmlcontext
  • tst_qqmldebugclient
  • tst_qqmldebugjs
  • tst_qqmldebuglocal
  • tst_qqmldebugservice
  • tst_qqmlecmascript
  • tst_qqmlenginecleanup
  • ...
4605396
848-
849 void cmpl_rm(RegisterID src, int offset, RegisterID base)-
850 {-
851 m_formatter.oneByteOp(OP_CMP_EvGv, src, base, offset);-
852 }
never executed: end of block
0
853-
854 void cmpl_mr(int offset, RegisterID base, RegisterID src)-
855 {-
856 m_formatter.oneByteOp(OP_CMP_GvEv, src, base, offset);-
857 }
executed 11 times by 1 test: end of block
Executed by:
  • tst_ecmascripttests
11
858-
859 void cmpl_ir(int imm, RegisterID dst)-
860 {-
861 if (CAN_SIGN_EXTEND_8_32(imm)) {
CAN_SIGN_EXTEND_8_32(imm)Description
TRUEevaluated 23913 times by 43 tests
Evaluated by:
  • tst_ecmascripttests
  • tst_examples
  • tst_flickableinterop
  • tst_multipointtoucharea_interop
  • tst_qjsengine
  • tst_qjsvalue
  • tst_qqmlbinding
  • tst_qqmlecmascript
  • tst_qqmlinstantiator
  • tst_qqmlitemmodels
  • tst_qqmllistmodel
  • tst_qqmllistmodelworkerscript
  • tst_qqmllocale
  • tst_qqmlprofilerservice
  • tst_qqmlqt
  • tst_qqmlvaluetypeproviders
  • tst_qqmlxmlhttprequest
  • tst_qquickanimatedimage
  • tst_qquickanimationcontroller
  • tst_qquickbehaviors
  • tst_qquickcustomaffector
  • tst_qquickdraghandler
  • tst_qquickdroparea
  • tst_qquickgridview
  • tst_qquickitem2
  • ...
FALSEevaluated 1622428 times by 49 tests
Evaluated by:
  • tst_ecmascripttests
  • tst_examples
  • tst_flickableinterop
  • tst_multipointtoucharea_interop
  • tst_qjsengine
  • tst_qjsvalue
  • tst_qqmlbinding
  • tst_qqmlecmascript
  • tst_qqmlenginedebugservice
  • tst_qqmlinstantiator
  • tst_qqmlitemmodels
  • tst_qqmllistmodelworkerscript
  • tst_qqmllocale
  • tst_qqmlprofilerservice
  • tst_qqmlproperty
  • tst_qqmlqt
  • tst_qqmlvaluetypeproviders
  • tst_qqmlxmlhttprequest
  • tst_qquickaccessible
  • tst_qquickanimatedimage
  • tst_qquickanimationcontroller
  • tst_qquickbehaviors
  • tst_qquickcustomaffector
  • tst_qquickdesignersupport
  • tst_qquickdraghandler
  • ...
23913-1622428
862 m_formatter.oneByteOp(OP_GROUP1_EvIb, GROUP1_OP_CMP, dst);-
863 m_formatter.immediate8(imm);-
864 } else {
executed 23924 times by 43 tests: end of block
Executed by:
  • tst_ecmascripttests
  • tst_examples
  • tst_flickableinterop
  • tst_multipointtoucharea_interop
  • tst_qjsengine
  • tst_qjsvalue
  • tst_qqmlbinding
  • tst_qqmlecmascript
  • tst_qqmlinstantiator
  • tst_qqmlitemmodels
  • tst_qqmllistmodel
  • tst_qqmllistmodelworkerscript
  • tst_qqmllocale
  • tst_qqmlprofilerservice
  • tst_qqmlqt
  • tst_qqmlvaluetypeproviders
  • tst_qqmlxmlhttprequest
  • tst_qquickanimatedimage
  • tst_qquickanimationcontroller
  • tst_qquickbehaviors
  • tst_qquickcustomaffector
  • tst_qquickdraghandler
  • tst_qquickdroparea
  • tst_qquickgridview
  • tst_qquickitem2
  • ...
23924
865 m_formatter.oneByteOp(OP_GROUP1_EvIz, GROUP1_OP_CMP, dst);-
866 m_formatter.immediate32(imm);-
867 }
executed 1624209 times by 49 tests: end of block
Executed by:
  • tst_ecmascripttests
  • tst_examples
  • tst_flickableinterop
  • tst_multipointtoucharea_interop
  • tst_qjsengine
  • tst_qjsvalue
  • tst_qqmlbinding
  • tst_qqmlecmascript
  • tst_qqmlenginedebugservice
  • tst_qqmlinstantiator
  • tst_qqmlitemmodels
  • tst_qqmllistmodelworkerscript
  • tst_qqmllocale
  • tst_qqmlprofilerservice
  • tst_qqmlproperty
  • tst_qqmlqt
  • tst_qqmlvaluetypeproviders
  • tst_qqmlxmlhttprequest
  • tst_qquickaccessible
  • tst_qquickanimatedimage
  • tst_qquickanimationcontroller
  • tst_qquickbehaviors
  • tst_qquickcustomaffector
  • tst_qquickdesignersupport
  • tst_qquickdraghandler
  • ...
1624209
868 }-
869-
870 void cmpl_ir_force32(int imm, RegisterID dst)-
871 {-
872 m_formatter.oneByteOp(OP_GROUP1_EvIz, GROUP1_OP_CMP, dst);-
873 m_formatter.immediate32(imm);-
874 }
never executed: end of block
0
875 -
876 void cmpl_im(int imm, int offset, RegisterID base)-
877 {-
878 if (CAN_SIGN_EXTEND_8_32(imm)) {
CAN_SIGN_EXTEND_8_32(imm)Description
TRUEevaluated 52783 times by 64 tests
Evaluated by:
  • tst_ecmascripttests
  • tst_examples
  • tst_flickableinterop
  • tst_multipointtoucharea_interop
  • tst_qjsengine
  • tst_qjsvalue
  • tst_qqmlbinding
  • tst_qqmlcomponent
  • tst_qqmlcontext
  • tst_qqmlecmascript
  • tst_qqmlenginedebugservice
  • tst_qqmlinstantiator
  • tst_qqmlitemmodels
  • tst_qqmllistmodel
  • tst_qqmllistmodelworkerscript
  • tst_qqmllocale
  • tst_qqmlnotifier
  • tst_qqmlprofilerservice
  • tst_qqmlproperty
  • tst_qqmlqt
  • tst_qqmlvaluetypeproviders
  • tst_qqmlvaluetypes
  • tst_qqmlxmlhttprequest
  • tst_qquickaccessible
  • tst_qquickanimatedimage
  • ...
FALSEnever evaluated
0-52783
879 m_formatter.oneByteOp(OP_GROUP1_EvIb, GROUP1_OP_CMP, base, offset);-
880 m_formatter.immediate8(imm);-
881 } else {
executed 52784 times by 64 tests: end of block
Executed by:
  • tst_ecmascripttests
  • tst_examples
  • tst_flickableinterop
  • tst_multipointtoucharea_interop
  • tst_qjsengine
  • tst_qjsvalue
  • tst_qqmlbinding
  • tst_qqmlcomponent
  • tst_qqmlcontext
  • tst_qqmlecmascript
  • tst_qqmlenginedebugservice
  • tst_qqmlinstantiator
  • tst_qqmlitemmodels
  • tst_qqmllistmodel
  • tst_qqmllistmodelworkerscript
  • tst_qqmllocale
  • tst_qqmlnotifier
  • tst_qqmlprofilerservice
  • tst_qqmlproperty
  • tst_qqmlqt
  • tst_qqmlvaluetypeproviders
  • tst_qqmlvaluetypes
  • tst_qqmlxmlhttprequest
  • tst_qquickaccessible
  • tst_qquickanimatedimage
  • ...
52784
882 m_formatter.oneByteOp(OP_GROUP1_EvIz, GROUP1_OP_CMP, base, offset);-
883 m_formatter.immediate32(imm);-
884 }
never executed: end of block
0
885 }-
886 -
887 void cmpb_im(int imm, int offset, RegisterID base)-
888 {-
889 m_formatter.oneByteOp(OP_GROUP1_EbIb, GROUP1_OP_CMP, base, offset);-
890 m_formatter.immediate8(imm);-
891 }
never executed: end of block
0
892 -
893 void cmpb_im(int imm, int offset, RegisterID base, RegisterID index, int scale)-
894 {-
895 m_formatter.oneByteOp(OP_GROUP1_EbIb, GROUP1_OP_CMP, base, index, scale, offset);-
896 m_formatter.immediate8(imm);-
897 }
executed 3753 times by 3 tests: end of block
Executed by:
  • tst_ecmascripttests
  • tst_qjsengine
  • tst_qqmlxmlhttprequest
3753
898 -
899#if CPU(X86)-
900 void cmpb_im(int imm, const void* addr)-
901 {-
902 m_formatter.oneByteOp(OP_GROUP1_EbIb, GROUP1_OP_CMP, addr);-
903 m_formatter.immediate8(imm);-
904 }-
905#endif-
906-
907 void cmpl_im(int imm, int offset, RegisterID base, RegisterID index, int scale)-
908 {-
909 if (CAN_SIGN_EXTEND_8_32(imm)) {
CAN_SIGN_EXTEND_8_32(imm)Description
TRUEnever evaluated
FALSEnever evaluated
0
910 m_formatter.oneByteOp(OP_GROUP1_EvIb, GROUP1_OP_CMP, base, index, scale, offset);-
911 m_formatter.immediate8(imm);-
912 } else {
never executed: end of block
0
913 m_formatter.oneByteOp(OP_GROUP1_EvIz, GROUP1_OP_CMP, base, index, scale, offset);-
914 m_formatter.immediate32(imm);-
915 }
never executed: end of block
0
916 }-
917-
918 void cmpl_im_force32(int imm, int offset, RegisterID base)-
919 {-
920 m_formatter.oneByteOp(OP_GROUP1_EvIz, GROUP1_OP_CMP, base, offset);-
921 m_formatter.immediate32(imm);-
922 }
never executed: end of block
0
923-
924#if CPU(X86_64)-
925 void cmpq_rr(RegisterID src, RegisterID dst)-
926 {-
927 m_formatter.oneByteOp64(OP_CMP_EvGv, src, dst);-
928 }
never executed: end of block
0
929-
930 void cmpq_rm(RegisterID src, int offset, RegisterID base)-
931 {-
932 m_formatter.oneByteOp64(OP_CMP_EvGv, src, base, offset);-
933 }
never executed: end of block
0
934-
935 void cmpq_mr(int offset, RegisterID base, RegisterID src)-
936 {-
937 m_formatter.oneByteOp64(OP_CMP_GvEv, src, base, offset);-
938 }
never executed: end of block
0
939-
940 void cmpq_ir(int imm, RegisterID dst)-
941 {-
942 if (CAN_SIGN_EXTEND_8_32(imm)) {
CAN_SIGN_EXTEND_8_32(imm)Description
TRUEnever evaluated
FALSEnever evaluated
0
943 m_formatter.oneByteOp64(OP_GROUP1_EvIb, GROUP1_OP_CMP, dst);-
944 m_formatter.immediate8(imm);-
945 } else {
never executed: end of block
0
946 m_formatter.oneByteOp64(OP_GROUP1_EvIz, GROUP1_OP_CMP, dst);-
947 m_formatter.immediate32(imm);-
948 }
never executed: end of block
0
949 }-
950-
951 void cmpq_im(int imm, int offset, RegisterID base)-
952 {-
953 if (CAN_SIGN_EXTEND_8_32(imm)) {
CAN_SIGN_EXTEND_8_32(imm)Description
TRUEnever evaluated
FALSEnever evaluated
0
954 m_formatter.oneByteOp64(OP_GROUP1_EvIb, GROUP1_OP_CMP, base, offset);-
955 m_formatter.immediate8(imm);-
956 } else {
never executed: end of block
0
957 m_formatter.oneByteOp64(OP_GROUP1_EvIz, GROUP1_OP_CMP, base, offset);-
958 m_formatter.immediate32(imm);-
959 }
never executed: end of block
0
960 }-
961-
962 void cmpq_im(int imm, int offset, RegisterID base, RegisterID index, int scale)-
963 {-
964 if (CAN_SIGN_EXTEND_8_32(imm)) {
CAN_SIGN_EXTEND_8_32(imm)Description
TRUEnever evaluated
FALSEnever evaluated
0
965 m_formatter.oneByteOp64(OP_GROUP1_EvIb, GROUP1_OP_CMP, base, index, scale, offset);-
966 m_formatter.immediate8(imm);-
967 } else {
never executed: end of block
0
968 m_formatter.oneByteOp64(OP_GROUP1_EvIz, GROUP1_OP_CMP, base, index, scale, offset);-
969 m_formatter.immediate32(imm);-
970 }
never executed: end of block
0
971 }-
972#else-
973 void cmpl_rm(RegisterID reg, const void* addr)-
974 {-
975 m_formatter.oneByteOp(OP_CMP_EvGv, reg, addr);-
976 }-
977-
978 void cmpl_im(int imm, const void* addr)-
979 {-
980 if (CAN_SIGN_EXTEND_8_32(imm)) {-
981 m_formatter.oneByteOp(OP_GROUP1_EvIb, GROUP1_OP_CMP, addr);-
982 m_formatter.immediate8(imm);-
983 } else {-
984 m_formatter.oneByteOp(OP_GROUP1_EvIz, GROUP1_OP_CMP, addr);-
985 m_formatter.immediate32(imm);-
986 }-
987 }-
988#endif-
989-
990 void cmpw_ir(int imm, RegisterID dst)-
991 {-
992 if (CAN_SIGN_EXTEND_8_32(imm)) {
CAN_SIGN_EXTEND_8_32(imm)Description
TRUEnever evaluated
FALSEnever evaluated
0
993 m_formatter.prefix(PRE_OPERAND_SIZE);-
994 m_formatter.oneByteOp(OP_GROUP1_EvIb, GROUP1_OP_CMP, dst);-
995 m_formatter.immediate8(imm);-
996 } else {
never executed: end of block
0
997 m_formatter.prefix(PRE_OPERAND_SIZE);-
998 m_formatter.oneByteOp(OP_GROUP1_EvIz, GROUP1_OP_CMP, dst);-
999 m_formatter.immediate16(imm);-
1000 }
never executed: end of block
0
1001 }-
1002-
1003 void cmpw_rm(RegisterID src, int offset, RegisterID base, RegisterID index, int scale)-
1004 {-
1005 m_formatter.prefix(PRE_OPERAND_SIZE);-
1006 m_formatter.oneByteOp(OP_CMP_EvGv, src, base, index, scale, offset);-
1007 }
never executed: end of block
0
1008-
1009 void cmpw_im(int imm, int offset, RegisterID base, RegisterID index, int scale)-
1010 {-
1011 if (CAN_SIGN_EXTEND_8_32(imm)) {
CAN_SIGN_EXTEND_8_32(imm)Description
TRUEnever evaluated
FALSEnever evaluated
0
1012 m_formatter.prefix(PRE_OPERAND_SIZE);-
1013 m_formatter.oneByteOp(OP_GROUP1_EvIb, GROUP1_OP_CMP, base, index, scale, offset);-
1014 m_formatter.immediate8(imm);-
1015 } else {
never executed: end of block
0
1016 m_formatter.prefix(PRE_OPERAND_SIZE);-
1017 m_formatter.oneByteOp(OP_GROUP1_EvIz, GROUP1_OP_CMP, base, index, scale, offset);-
1018 m_formatter.immediate16(imm);-
1019 }
never executed: end of block
0
1020 }-
1021-
1022 void testl_rr(RegisterID src, RegisterID dst)-
1023 {-
1024 m_formatter.oneByteOp(OP_TEST_EvGv, src, dst);-
1025 }
executed 10023 times by 41 tests: end of block
Executed by:
  • tst_ecmascripttests
  • tst_examples
  • tst_flickableinterop
  • tst_multipointtoucharea_interop
  • tst_qjsengine
  • tst_qjsvalue
  • tst_qqmlbinding
  • tst_qqmlecmascript
  • tst_qqmlinstantiator
  • tst_qqmlitemmodels
  • tst_qqmllistmodel
  • tst_qqmllistmodelworkerscript
  • tst_qqmllocale
  • tst_qqmlprofilerservice
  • tst_qqmlqt
  • tst_qqmlxmlhttprequest
  • tst_qquickanimatedimage
  • tst_qquickanimationcontroller
  • tst_qquickbehaviors
  • tst_qquickcustomaffector
  • tst_qquickdraghandler
  • tst_qquickdroparea
  • tst_qquickgridview
  • tst_qquickitem2
  • tst_qquicklayouts
  • ...
10023
1026 -
1027 void testl_i32r(int imm, RegisterID dst)-
1028 {-
1029 m_formatter.oneByteOp(OP_GROUP3_EvIz, GROUP3_OP_TEST, dst);-
1030 m_formatter.immediate32(imm);-
1031 }
never executed: end of block
0
1032-
1033 void testl_i32m(int imm, int offset, RegisterID base)-
1034 {-
1035 m_formatter.oneByteOp(OP_GROUP3_EvIz, GROUP3_OP_TEST, base, offset);-
1036 m_formatter.immediate32(imm);-
1037 }
never executed: end of block
0
1038-
1039 void testb_rr(RegisterID src, RegisterID dst)-
1040 {-
1041 m_formatter.oneByteOp8(OP_TEST_EbGb, src, dst);-
1042 }
never executed: end of block
0
1043-
1044 void testb_im(int imm, int offset, RegisterID base)-
1045 {-
1046 m_formatter.oneByteOp(OP_GROUP3_EbIb, GROUP3_OP_TEST, base, offset);-
1047 m_formatter.immediate8(imm);-
1048 }
never executed: end of block
0
1049 -
1050 void testb_im(int imm, int offset, RegisterID base, RegisterID index, int scale)-
1051 {-
1052 m_formatter.oneByteOp(OP_GROUP3_EbIb, GROUP3_OP_TEST, base, index, scale, offset);-
1053 m_formatter.immediate8(imm);-
1054 }
never executed: end of block
0
1055-
1056#if CPU(X86)-
1057 void testb_im(int imm, const void* addr)-
1058 {-
1059 m_formatter.oneByteOp(OP_GROUP3_EbIb, GROUP3_OP_TEST, addr);-
1060 m_formatter.immediate8(imm);-
1061 }-
1062#endif-
1063-
1064 void testl_i32m(int imm, int offset, RegisterID base, RegisterID index, int scale)-
1065 {-
1066 m_formatter.oneByteOp(OP_GROUP3_EvIz, GROUP3_OP_TEST, base, index, scale, offset);-
1067 m_formatter.immediate32(imm);-
1068 }
never executed: end of block
0
1069-
1070#if CPU(X86_64)-
1071 void testq_rr(RegisterID src, RegisterID dst)-
1072 {-
1073 m_formatter.oneByteOp64(OP_TEST_EvGv, src, dst);-
1074 }
executed 13196 times by 64 tests: end of block
Executed by:
  • tst_examples
  • tst_flickableinterop
  • tst_multipointtoucharea_interop
  • tst_qjsengine
  • tst_qjsvalue
  • tst_qqmlbinding
  • tst_qqmlcomponent
  • tst_qqmlcontext
  • tst_qqmlecmascript
  • tst_qqmlenginedebugservice
  • tst_qqmlinstantiator
  • tst_qqmlitemmodels
  • tst_qqmllistmodel
  • tst_qqmllistmodelworkerscript
  • tst_qqmllocale
  • tst_qqmlnotifier
  • tst_qqmlprofilerservice
  • tst_qqmlproperty
  • tst_qqmlqt
  • tst_qqmlvaluetypeproviders
  • tst_qqmlvaluetypes
  • tst_qqmlxmlhttprequest
  • tst_qquickaccessible
  • tst_qquickanimatedimage
  • tst_qquickanimationcontroller
  • ...
13196
1075-
1076 void testq_rm(RegisterID src, int offset, RegisterID base)-
1077 {-
1078 m_formatter.oneByteOp64(OP_TEST_EvGv, src, base, offset);-
1079 }
never executed: end of block
0
1080-
1081 void testq_i32r(int imm, RegisterID dst)-
1082 {-
1083 m_formatter.oneByteOp64(OP_GROUP3_EvIz, GROUP3_OP_TEST, dst);-
1084 m_formatter.immediate32(imm);-
1085 }
never executed: end of block
0
1086-
1087 void testq_i32m(int imm, int offset, RegisterID base)-
1088 {-
1089 m_formatter.oneByteOp64(OP_GROUP3_EvIz, GROUP3_OP_TEST, base, offset);-
1090 m_formatter.immediate32(imm);-
1091 }
never executed: end of block
0
1092-
1093 void testq_i32m(int imm, int offset, RegisterID base, RegisterID index, int scale)-
1094 {-
1095 m_formatter.oneByteOp64(OP_GROUP3_EvIz, GROUP3_OP_TEST, base, index, scale, offset);-
1096 m_formatter.immediate32(imm);-
1097 }
never executed: end of block
0
1098#endif -
1099-
1100 void testw_rr(RegisterID src, RegisterID dst)-
1101 {-
1102 m_formatter.prefix(PRE_OPERAND_SIZE);-
1103 m_formatter.oneByteOp(OP_TEST_EvGv, src, dst);-
1104 }
never executed: end of block
0
1105 -
1106 void testb_i8r(int imm, RegisterID dst)-
1107 {-
1108 m_formatter.oneByteOp8(OP_GROUP3_EbIb, GROUP3_OP_TEST, dst);-
1109 m_formatter.immediate8(imm);-
1110 }
never executed: end of block
0
1111-
1112 void setCC_r(Condition cond, RegisterID dst)-
1113 {-
1114 m_formatter.twoByteOp8(setccOpcode(cond), (GroupOpcodeID)0, dst);-
1115 }
executed 2610 times by 34 tests: end of block
Executed by:
  • tst_examples
  • tst_flickableinterop
  • tst_qjsengine
  • tst_qjsvalue
  • tst_qqmlbinding
  • tst_qqmlecmascript
  • tst_qqmlinstantiator
  • tst_qqmlitemmodels
  • tst_qqmllistmodelworkerscript
  • tst_qqmllocale
  • tst_qqmlprofilerservice
  • tst_qqmlqt
  • tst_qqmlvaluetypeproviders
  • tst_qqmlxmlhttprequest
  • tst_qquickanimatedimage
  • tst_qquickanimationcontroller
  • tst_qquickbehaviors
  • tst_qquickcustomaffector
  • tst_qquickdraghandler
  • tst_qquickgridview
  • tst_qquickitem2
  • tst_qquicklayouts
  • tst_qquicklistview
  • tst_qquickmousearea
  • tst_qquickpositioners
  • ...
2610
1116-
1117 void sete_r(RegisterID dst)-
1118 {-
1119 m_formatter.twoByteOp8(setccOpcode(ConditionE), (GroupOpcodeID)0, dst);-
1120 }
never executed: end of block
0
1121-
1122 void setz_r(RegisterID dst)-
1123 {-
1124 sete_r(dst);-
1125 }
never executed: end of block
0
1126-
1127 void setne_r(RegisterID dst)-
1128 {-
1129 m_formatter.twoByteOp8(setccOpcode(ConditionNE), (GroupOpcodeID)0, dst);-
1130 }
never executed: end of block
0
1131-
1132 void setnz_r(RegisterID dst)-
1133 {-
1134 setne_r(dst);-
1135 }
never executed: end of block
0
1136-
1137 // Various move ops:-
1138-
1139 void cdq()-
1140 {-
1141 m_formatter.oneByteOp(OP_CDQ);-
1142 }
never executed: end of block
0
1143-
1144 void fstpl(int offset, RegisterID base)-
1145 {-
1146 m_formatter.oneByteOp(OP_ESCAPE_DD, ESCAPE_DD_FSTP_doubleReal, base, offset);-
1147 }
never executed: end of block
0
1148-
1149 void xchgl_rr(RegisterID src, RegisterID dst)-
1150 {-
1151 m_formatter.oneByteOp(OP_XCHG_EvGv, src, dst);-
1152 }
never executed: end of block
0
1153-
1154#if CPU(X86_64)-
1155 void xchgq_rr(RegisterID src, RegisterID dst)-
1156 {-
1157 m_formatter.oneByteOp64(OP_XCHG_EvGv, src, dst);-
1158 }
never executed: end of block
0
1159#endif-
1160-
1161 void movl_rr(RegisterID src, RegisterID dst)-
1162 {-
1163 m_formatter.oneByteOp(OP_MOV_EvGv, src, dst);-
1164 }
executed 2299725 times by 153 tests: end of block
Executed by:
  • tst_bindingdependencyapi
  • tst_drawingmodes
  • tst_ecmascripttests
  • tst_examples
  • tst_flickableinterop
  • tst_multipointtoucharea_interop
  • tst_parserstress
  • tst_qjsengine
  • tst_qjsonbinding
  • tst_qjsvalue
  • tst_qjsvalueiterator
  • tst_qmlcachegen
  • tst_qmldiskcache
  • tst_qqmlapplicationengine
  • tst_qqmlbinding
  • tst_qqmlcomponent
  • tst_qqmlconnections
  • tst_qqmlconsole
  • tst_qqmlcontext
  • tst_qqmldebugclient
  • tst_qqmldebugjs
  • tst_qqmldebuglocal
  • tst_qqmldebugservice
  • tst_qqmlecmascript
  • tst_qqmlenginecleanup
  • ...
2299725
1165 -
1166 void movl_rm(RegisterID src, int offset, RegisterID base)-
1167 {-
1168 m_formatter.oneByteOp(OP_MOV_EvGv, src, base, offset);-
1169 }
executed 2306810 times by 153 tests: end of block
Executed by:
  • tst_bindingdependencyapi
  • tst_drawingmodes
  • tst_ecmascripttests
  • tst_examples
  • tst_flickableinterop
  • tst_multipointtoucharea_interop
  • tst_parserstress
  • tst_qjsengine
  • tst_qjsonbinding
  • tst_qjsvalue
  • tst_qjsvalueiterator
  • tst_qmlcachegen
  • tst_qmldiskcache
  • tst_qqmlapplicationengine
  • tst_qqmlbinding
  • tst_qqmlcomponent
  • tst_qqmlconnections
  • tst_qqmlconsole
  • tst_qqmlcontext
  • tst_qqmldebugclient
  • tst_qqmldebugjs
  • tst_qqmldebuglocal
  • tst_qqmldebugservice
  • tst_qqmlecmascript
  • tst_qqmlenginecleanup
  • ...
2306810
1170-
1171 void movl_rm_disp32(RegisterID src, int offset, RegisterID base)-
1172 {-
1173 m_formatter.oneByteOp_disp32(OP_MOV_EvGv, src, base, offset);-
1174 }
never executed: end of block
0
1175-
1176 void movl_rm(RegisterID src, int offset, RegisterID base, RegisterID index, int scale)-
1177 {-
1178 m_formatter.oneByteOp(OP_MOV_EvGv, src, base, index, scale, offset);-
1179 }
never executed: end of block
0
1180 -
1181 void movl_mEAX(const void* addr)-
1182 {-
1183 m_formatter.oneByteOp(OP_MOV_EAXOv);-
1184#if CPU(X86_64)-
1185 m_formatter.immediate64(reinterpret_cast<int64_t>(addr));-
1186#else-
1187 m_formatter.immediate32(reinterpret_cast<int>(addr));-
1188#endif-
1189 }
never executed: end of block
0
1190-
1191 void movl_mr(int offset, RegisterID base, RegisterID dst)-
1192 {-
1193 m_formatter.oneByteOp(OP_MOV_GvEv, dst, base, offset);-
1194 }
executed 1246 times by 13 tests: end of block
Executed by:
  • tst_ecmascripttests
  • tst_examples
  • tst_qjsengine
  • tst_qjsvalue
  • tst_qqmlecmascript
  • tst_qqmllistmodelworkerscript
  • tst_qqmlxmlhttprequest
  • tst_qquickanimationcontroller
  • tst_qquicklayouts
  • tst_qquicklistview
  • tst_qquicktextinput
  • tst_qquickworkerscript
  • tst_testfiltering
1246
1195-
1196 void movl_mr_disp32(int offset, RegisterID base, RegisterID dst)-
1197 {-
1198 m_formatter.oneByteOp_disp32(OP_MOV_GvEv, dst, base, offset);-
1199 }
never executed: end of block
0
1200 -
1201 void movl_mr_disp8(int offset, RegisterID base, RegisterID dst)-
1202 {-
1203 m_formatter.oneByteOp_disp8(OP_MOV_GvEv, dst, base, offset);-
1204 }
never executed: end of block
0
1205-
1206 void movl_mr(int offset, RegisterID base, RegisterID index, int scale, RegisterID dst)-
1207 {-
1208 m_formatter.oneByteOp(OP_MOV_GvEv, dst, base, index, scale, offset);-
1209 }
executed 789134 times by 5 tests: end of block
Executed by:
  • tst_ecmascripttests
  • tst_examples
  • tst_qjsengine
  • tst_qjsvalue
  • tst_qquicktextinput
789134
1210-
1211 void movl_i32r(int imm, RegisterID dst)-
1212 {-
1213 m_formatter.oneByteOp(OP_MOV_EAXIv, dst);-
1214 m_formatter.immediate32(imm);-
1215 }
executed 50956 times by 63 tests: end of block
Executed by:
  • tst_examples
  • tst_flickableinterop
  • tst_multipointtoucharea_interop
  • tst_qjsengine
  • tst_qqmlbinding
  • tst_qqmlcomponent
  • tst_qqmlcontext
  • tst_qqmlecmascript
  • tst_qqmlenginedebugservice
  • tst_qqmlinstantiator
  • tst_qqmlitemmodels
  • tst_qqmllistmodel
  • tst_qqmllistmodelworkerscript
  • tst_qqmllocale
  • tst_qqmlnotifier
  • tst_qqmlprofilerservice
  • tst_qqmlproperty
  • tst_qqmlqt
  • tst_qqmlvaluetypeproviders
  • tst_qqmlvaluetypes
  • tst_qqmlxmlhttprequest
  • tst_qquickaccessible
  • tst_qquickanimatedimage
  • tst_qquickanimationcontroller
  • tst_qquickanimations
  • ...
50956
1216-
1217 void movl_i32m(int imm, int offset, RegisterID base)-
1218 {-
1219 m_formatter.oneByteOp(OP_GROUP11_EvIz, GROUP11_MOV, base, offset);-
1220 m_formatter.immediate32(imm);-
1221 }
executed 1199392 times by 153 tests: end of block
Executed by:
  • tst_bindingdependencyapi
  • tst_drawingmodes
  • tst_ecmascripttests
  • tst_examples
  • tst_flickableinterop
  • tst_multipointtoucharea_interop
  • tst_parserstress
  • tst_qjsengine
  • tst_qjsonbinding
  • tst_qjsvalue
  • tst_qjsvalueiterator
  • tst_qmlcachegen
  • tst_qmldiskcache
  • tst_qqmlapplicationengine
  • tst_qqmlbinding
  • tst_qqmlcomponent
  • tst_qqmlconnections
  • tst_qqmlconsole
  • tst_qqmlcontext
  • tst_qqmldebugclient
  • tst_qqmldebugjs
  • tst_qqmldebuglocal
  • tst_qqmldebugservice
  • tst_qqmlecmascript
  • tst_qqmlenginecleanup
  • ...
1199392
1222 -
1223 void movl_i32m(int imm, int offset, RegisterID base, RegisterID index, int scale)-
1224 {-
1225 m_formatter.oneByteOp(OP_GROUP11_EvIz, GROUP11_MOV, base, index, scale, offset);-
1226 m_formatter.immediate32(imm);-
1227 }
never executed: end of block
0
1228-
1229#if !CPU(X86_64)-
1230 void movb_i8m(int imm, const void* addr)-
1231 {-
1232 ASSERT(-128 <= imm && imm < 128);-
1233 m_formatter.oneByteOp(OP_GROUP11_EvIb, GROUP11_MOV, addr);-
1234 m_formatter.immediate8(imm);-
1235 }-
1236#endif-
1237-
1238 void movb_i8m(int imm, int offset, RegisterID base)-
1239 {-
1240 ASSERT(-128 <= imm && imm < 128);-
1241 m_formatter.oneByteOp(OP_GROUP11_EvIb, GROUP11_MOV, base, offset);-
1242 m_formatter.immediate8(imm);-
1243 }
never executed: end of block
0
1244-
1245 void movb_i8m(int imm, int offset, RegisterID base, RegisterID index, int scale)-
1246 {-
1247 ASSERT(-128 <= imm && imm < 128);-
1248 m_formatter.oneByteOp(OP_GROUP11_EvIb, GROUP11_MOV, base, index, scale, offset);-
1249 m_formatter.immediate8(imm);-
1250 }
never executed: end of block
0
1251 -
1252 void movb_rm(RegisterID src, int offset, RegisterID base, RegisterID index, int scale)-
1253 {-
1254 m_formatter.oneByteOp8(OP_MOV_EbGb, src, base, index, scale, offset);-
1255 }
never executed: end of block
0
1256 -
1257 void movw_rm(RegisterID src, int offset, RegisterID base, RegisterID index, int scale)-
1258 {-
1259 m_formatter.prefix(PRE_OPERAND_SIZE);-
1260 m_formatter.oneByteOp8(OP_MOV_EvGv, src, base, index, scale, offset);-
1261 }
never executed: end of block
0
1262-
1263 void movl_EAXm(const void* addr)-
1264 {-
1265 m_formatter.oneByteOp(OP_MOV_OvEAX);-
1266#if CPU(X86_64)-
1267 m_formatter.immediate64(reinterpret_cast<int64_t>(addr));-
1268#else-
1269 m_formatter.immediate32(reinterpret_cast<int>(addr));-
1270#endif-
1271 }
never executed: end of block
0
1272-
1273#if CPU(X86_64)-
1274 void movq_rr(RegisterID src, RegisterID dst)-
1275 {-
1276 m_formatter.oneByteOp64(OP_MOV_EvGv, src, dst);-
1277 }
executed 3596077 times by 153 tests: end of block
Executed by:
  • tst_bindingdependencyapi
  • tst_drawingmodes
  • tst_ecmascripttests
  • tst_examples
  • tst_flickableinterop
  • tst_multipointtoucharea_interop
  • tst_parserstress
  • tst_qjsengine
  • tst_qjsonbinding
  • tst_qjsvalue
  • tst_qjsvalueiterator
  • tst_qmlcachegen
  • tst_qmldiskcache
  • tst_qqmlapplicationengine
  • tst_qqmlbinding
  • tst_qqmlcomponent
  • tst_qqmlconnections
  • tst_qqmlconsole
  • tst_qqmlcontext
  • tst_qqmldebugclient
  • tst_qqmldebugjs
  • tst_qqmldebuglocal
  • tst_qqmldebugservice
  • tst_qqmlecmascript
  • tst_qqmlenginecleanup
  • ...
3596077
1278-
1279 void movq_rm(RegisterID src, int offset, RegisterID base)-
1280 {-
1281 m_formatter.oneByteOp64(OP_MOV_EvGv, src, base, offset);-
1282 }
executed 86961 times by 65 tests: end of block
Executed by:
  • tst_ecmascripttests
  • tst_examples
  • tst_flickableinterop
  • tst_multipointtoucharea_interop
  • tst_qjsengine
  • tst_qjsvalue
  • tst_qqmlbinding
  • tst_qqmlcomponent
  • tst_qqmlcontext
  • tst_qqmlecmascript
  • tst_qqmlenginedebugservice
  • tst_qqmlinstantiator
  • tst_qqmlitemmodels
  • tst_qqmllistmodel
  • tst_qqmllistmodelworkerscript
  • tst_qqmllocale
  • tst_qqmlnotifier
  • tst_qqmlprofilerservice
  • tst_qqmlproperty
  • tst_qqmlqt
  • tst_qqmlvaluetypeproviders
  • tst_qqmlvaluetypes
  • tst_qqmlxmlhttprequest
  • tst_qquickaccessible
  • tst_qquickanimatedimage
  • ...
86961
1283-
1284 void movq_rm_disp32(RegisterID src, int offset, RegisterID base)-
1285 {-
1286 m_formatter.oneByteOp64_disp32(OP_MOV_EvGv, src, base, offset);-
1287 }
never executed: end of block
0
1288-
1289 void movq_rm(RegisterID src, int offset, RegisterID base, RegisterID index, int scale)-
1290 {-
1291 m_formatter.oneByteOp64(OP_MOV_EvGv, src, base, index, scale, offset);-
1292 }
never executed: end of block
0
1293-
1294 void movq_mEAX(const void* addr)-
1295 {-
1296 m_formatter.oneByteOp64(OP_MOV_EAXOv);-
1297 m_formatter.immediate64(reinterpret_cast<int64_t>(addr));-
1298 }
never executed: end of block
0
1299-
1300 void movq_EAXm(const void* addr)-
1301 {-
1302 m_formatter.oneByteOp64(OP_MOV_OvEAX);-
1303 m_formatter.immediate64(reinterpret_cast<int64_t>(addr));-
1304 }
never executed: end of block
0
1305-
1306 void movq_mr(int offset, RegisterID base, RegisterID dst)-
1307 {-
1308 m_formatter.oneByteOp64(OP_MOV_GvEv, dst, base, offset);-
1309 }
executed 59260 times by 65 tests: end of block
Executed by:
  • tst_ecmascripttests
  • tst_examples
  • tst_flickableinterop
  • tst_multipointtoucharea_interop
  • tst_qjsengine
  • tst_qjsvalue
  • tst_qqmlbinding
  • tst_qqmlcomponent
  • tst_qqmlcontext
  • tst_qqmlecmascript
  • tst_qqmlenginedebugservice
  • tst_qqmlinstantiator
  • tst_qqmlitemmodels
  • tst_qqmllistmodel
  • tst_qqmllistmodelworkerscript
  • tst_qqmllocale
  • tst_qqmlnotifier
  • tst_qqmlprofilerservice
  • tst_qqmlproperty
  • tst_qqmlqt
  • tst_qqmlvaluetypeproviders
  • tst_qqmlvaluetypes
  • tst_qqmlxmlhttprequest
  • tst_qquickaccessible
  • tst_qquickanimatedimage
  • ...
59260
1310-
1311 void movq_mr_disp32(int offset, RegisterID base, RegisterID dst)-
1312 {-
1313 m_formatter.oneByteOp64_disp32(OP_MOV_GvEv, dst, base, offset);-
1314 }
never executed: end of block
0
1315-
1316 void movq_mr_disp8(int offset, RegisterID base, RegisterID dst)-
1317 {-
1318 m_formatter.oneByteOp64_disp8(OP_MOV_GvEv, dst, base, offset);-
1319 }
never executed: end of block
0
1320-
1321 void movq_mr(int offset, RegisterID base, RegisterID index, int scale, RegisterID dst)-
1322 {-
1323 m_formatter.oneByteOp64(OP_MOV_GvEv, dst, base, index, scale, offset);-
1324 }
never executed: end of block
0
1325-
1326 void movq_i32m(int imm, int offset, RegisterID base)-
1327 {-
1328 m_formatter.oneByteOp64(OP_GROUP11_EvIz, GROUP11_MOV, base, offset);-
1329 m_formatter.immediate32(imm);-
1330 }
never executed: end of block
0
1331-
1332 void movq_i64r(int64_t imm, RegisterID dst)-
1333 {-
1334 m_formatter.oneByteOp64(OP_MOV_EAXIv, dst);-
1335 m_formatter.immediate64(imm);-
1336 }
executed 2428973 times by 153 tests: end of block
Executed by:
  • tst_bindingdependencyapi
  • tst_drawingmodes
  • tst_ecmascripttests
  • tst_examples
  • tst_flickableinterop
  • tst_multipointtoucharea_interop
  • tst_parserstress
  • tst_qjsengine
  • tst_qjsonbinding
  • tst_qjsvalue
  • tst_qjsvalueiterator
  • tst_qmlcachegen
  • tst_qmldiskcache
  • tst_qqmlapplicationengine
  • tst_qqmlbinding
  • tst_qqmlcomponent
  • tst_qqmlconnections
  • tst_qqmlconsole
  • tst_qqmlcontext
  • tst_qqmldebugclient
  • tst_qqmldebugjs
  • tst_qqmldebuglocal
  • tst_qqmldebugservice
  • tst_qqmlecmascript
  • tst_qqmlenginecleanup
  • ...
2428973
1337 -
1338 void movsxd_rr(RegisterID src, RegisterID dst)-
1339 {-
1340 m_formatter.oneByteOp64(OP_MOVSXD_GvEv, dst, src);-
1341 }
never executed: end of block
0
1342 -
1343 -
1344#else-
1345 void movl_rm(RegisterID src, const void* addr)-
1346 {-
1347 if (src == X86Registers::eax)-
1348 movl_EAXm(addr);-
1349 else -
1350 m_formatter.oneByteOp(OP_MOV_EvGv, src, addr);-
1351 }-
1352 -
1353 void movl_mr(const void* addr, RegisterID dst)-
1354 {-
1355 if (dst == X86Registers::eax)-
1356 movl_mEAX(addr);-
1357 else-
1358 m_formatter.oneByteOp(OP_MOV_GvEv, dst, addr);-
1359 }-
1360-
1361 void movl_i32m(int imm, const void* addr)-
1362 {-
1363 m_formatter.oneByteOp(OP_GROUP11_EvIz, GROUP11_MOV, addr);-
1364 m_formatter.immediate32(imm);-
1365 }-
1366#endif-
1367-
1368 void movzwl_mr(int offset, RegisterID base, RegisterID dst)-
1369 {-
1370 m_formatter.twoByteOp(OP2_MOVZX_GvEw, dst, base, offset);-
1371 }
never executed: end of block
0
1372-
1373 void movzwl_mr(int offset, RegisterID base, RegisterID index, int scale, RegisterID dst)-
1374 {-
1375 m_formatter.twoByteOp(OP2_MOVZX_GvEw, dst, base, index, scale, offset);-
1376 }
executed 796938 times by 9 tests: end of block
Executed by:
  • tst_ecmascripttests
  • tst_examples
  • tst_qjsengine
  • tst_qjsvalue
  • tst_qqmlecmascript
  • tst_qqmlxmlhttprequest
  • tst_qquicklistview
  • tst_qquicktextinput
  • tst_qquickworkerscript
796938
1377-
1378 void movswl_mr(int offset, RegisterID base, RegisterID dst)-
1379 {-
1380 m_formatter.twoByteOp(OP2_MOVSX_GvEw, dst, base, offset);-
1381 }
never executed: end of block
0
1382-
1383 void movswl_mr(int offset, RegisterID base, RegisterID index, int scale, RegisterID dst)-
1384 {-
1385 m_formatter.twoByteOp(OP2_MOVSX_GvEw, dst, base, index, scale, offset);-
1386 }
never executed: end of block
0
1387-
1388 void movzbl_mr(int offset, RegisterID base, RegisterID dst)-
1389 {-
1390 m_formatter.twoByteOp(OP2_MOVZX_GvEb, dst, base, offset);-
1391 }
never executed: end of block
0
1392 -
1393 void movzbl_mr(int offset, RegisterID base, RegisterID index, int scale, RegisterID dst)-
1394 {-
1395 m_formatter.twoByteOp(OP2_MOVZX_GvEb, dst, base, index, scale, offset);-
1396 }
never executed: end of block
0
1397-
1398 void movsbl_mr(int offset, RegisterID base, RegisterID dst)-
1399 {-
1400 m_formatter.twoByteOp(OP2_MOVSX_GvEb, dst, base, offset);-
1401 }
never executed: end of block
0
1402 -
1403 void movsbl_mr(int offset, RegisterID base, RegisterID index, int scale, RegisterID dst)-
1404 {-
1405 m_formatter.twoByteOp(OP2_MOVSX_GvEb, dst, base, index, scale, offset);-
1406 }
never executed: end of block
0
1407-
1408 void movzbl_rr(RegisterID src, RegisterID dst)-
1409 {-
1410 // In 64-bit, this may cause an unnecessary REX to be planted (if the dst register-
1411 // is in the range ESP-EDI, and the src would not have required a REX). Unneeded-
1412 // REX prefixes are defined to be silently ignored by the processor.-
1413 m_formatter.twoByteOp8(OP2_MOVZX_GvEb, dst, src);-
1414 }
executed 2610 times by 34 tests: end of block
Executed by:
  • tst_examples
  • tst_flickableinterop
  • tst_qjsengine
  • tst_qjsvalue
  • tst_qqmlbinding
  • tst_qqmlecmascript
  • tst_qqmlinstantiator
  • tst_qqmlitemmodels
  • tst_qqmllistmodelworkerscript
  • tst_qqmllocale
  • tst_qqmlprofilerservice
  • tst_qqmlqt
  • tst_qqmlvaluetypeproviders
  • tst_qqmlxmlhttprequest
  • tst_qquickanimatedimage
  • tst_qquickanimationcontroller
  • tst_qquickbehaviors
  • tst_qquickcustomaffector
  • tst_qquickdraghandler
  • tst_qquickgridview
  • tst_qquickitem2
  • tst_qquicklayouts
  • tst_qquicklistview
  • tst_qquickmousearea
  • tst_qquickpositioners
  • ...
2610
1415-
1416 void leal_mr(int offset, RegisterID base, RegisterID dst)-
1417 {-
1418 m_formatter.oneByteOp(OP_LEA, dst, base, offset);-
1419 }
never executed: end of block
0
1420#if CPU(X86_64)-
1421 void leaq_mr(int offset, RegisterID base, RegisterID dst)-
1422 {-
1423 m_formatter.oneByteOp64(OP_LEA, dst, base, offset);-
1424 }
executed 51526 times by 62 tests: end of block
Executed by:
  • tst_examples
  • tst_flickableinterop
  • tst_multipointtoucharea_interop
  • tst_qjsengine
  • tst_qjsvalue
  • tst_qqmlbinding
  • tst_qqmlcomponent
  • tst_qqmlcontext
  • tst_qqmlecmascript
  • tst_qqmlenginedebugservice
  • tst_qqmlinstantiator
  • tst_qqmlitemmodels
  • tst_qqmllistmodelworkerscript
  • tst_qqmllocale
  • tst_qqmlnotifier
  • tst_qqmlprofilerservice
  • tst_qqmlproperty
  • tst_qqmlqt
  • tst_qqmlvaluetypeproviders
  • tst_qqmlvaluetypes
  • tst_qqmlxmlhttprequest
  • tst_qquickaccessible
  • tst_qquickanimatedimage
  • tst_qquickanimationcontroller
  • tst_qquickanimations
  • ...
51526
1425#endif-
1426-
1427 // Flow control:-
1428-
1429 AssemblerLabel call()-
1430 {-
1431 m_formatter.oneByteOp(OP_CALL_rel32);-
1432 return m_formatter.immediateRel32();
never executed: return m_formatter.immediateRel32();
0
1433 }-
1434 -
1435 AssemblerLabel call(RegisterID dst)-
1436 {-
1437 m_formatter.oneByteOp(OP_GROUP5_Ev, GROUP5_OP_CALLN, dst);-
1438 return m_formatter.label();
executed 83222 times by 64 tests: return m_formatter.label();
Executed by:
  • tst_examples
  • tst_flickableinterop
  • tst_multipointtoucharea_interop
  • tst_qjsengine
  • tst_qjsvalue
  • tst_qqmlbinding
  • tst_qqmlcomponent
  • tst_qqmlcontext
  • tst_qqmlecmascript
  • tst_qqmlenginedebugservice
  • tst_qqmlinstantiator
  • tst_qqmlitemmodels
  • tst_qqmllistmodel
  • tst_qqmllistmodelworkerscript
  • tst_qqmllocale
  • tst_qqmlnotifier
  • tst_qqmlprofilerservice
  • tst_qqmlproperty
  • tst_qqmlqt
  • tst_qqmlvaluetypeproviders
  • tst_qqmlvaluetypes
  • tst_qqmlxmlhttprequest
  • tst_qquickaccessible
  • tst_qquickanimatedimage
  • tst_qquickanimationcontroller
  • ...
83222
1439 }-
1440 -
1441 void call_m(int offset, RegisterID base)-
1442 {-
1443 m_formatter.oneByteOp(OP_GROUP5_Ev, GROUP5_OP_CALLN, base, offset);-
1444 }
never executed: end of block
0
1445-
1446 AssemblerLabel jmp()-
1447 {-
1448 m_formatter.oneByteOp(OP_JMP_rel32);-
1449 return m_formatter.immediateRel32();
executed 1186721 times by 153 tests: return m_formatter.immediateRel32();
Executed by:
  • tst_bindingdependencyapi
  • tst_drawingmodes
  • tst_ecmascripttests
  • tst_examples
  • tst_flickableinterop
  • tst_multipointtoucharea_interop
  • tst_parserstress
  • tst_qjsengine
  • tst_qjsonbinding
  • tst_qjsvalue
  • tst_qjsvalueiterator
  • tst_qmlcachegen
  • tst_qmldiskcache
  • tst_qqmlapplicationengine
  • tst_qqmlbinding
  • tst_qqmlcomponent
  • tst_qqmlconnections
  • tst_qqmlconsole
  • tst_qqmlcontext
  • tst_qqmldebugclient
  • tst_qqmldebugjs
  • tst_qqmldebuglocal
  • tst_qqmldebugservice
  • tst_qqmlecmascript
  • tst_qqmlenginecleanup
  • ...
1186721
1450 }-
1451 -
1452 // Return a AssemblerLabel so we have a label to the jump, so we can use this-
1453 // To make a tail recursive call on x86-64. The MacroAssembler-
1454 // really shouldn't wrap this as a Jump, since it can't be linked. :-/-
1455 AssemblerLabel jmp_r(RegisterID dst)-
1456 {-
1457 m_formatter.oneByteOp(OP_GROUP5_Ev, GROUP5_OP_JMPN, dst);-
1458 return m_formatter.label();
executed 13238 times by 64 tests: return m_formatter.label();
Executed by:
  • tst_examples
  • tst_flickableinterop
  • tst_multipointtoucharea_interop
  • tst_qjsengine
  • tst_qjsvalue
  • tst_qqmlbinding
  • tst_qqmlcomponent
  • tst_qqmlcontext
  • tst_qqmlecmascript
  • tst_qqmlenginedebugservice
  • tst_qqmlinstantiator
  • tst_qqmlitemmodels
  • tst_qqmllistmodel
  • tst_qqmllistmodelworkerscript
  • tst_qqmllocale
  • tst_qqmlnotifier
  • tst_qqmlprofilerservice
  • tst_qqmlproperty
  • tst_qqmlqt
  • tst_qqmlvaluetypeproviders
  • tst_qqmlvaluetypes
  • tst_qqmlxmlhttprequest
  • tst_qquickaccessible
  • tst_qquickanimatedimage
  • tst_qquickanimationcontroller
  • ...
13238
1459 }-
1460 -
1461 void jmp_m(int offset, RegisterID base)-
1462 {-
1463 m_formatter.oneByteOp(OP_GROUP5_Ev, GROUP5_OP_JMPN, base, offset);-
1464 }
executed 164 times by 3 tests: end of block
Executed by:
  • tst_ecmascripttests
  • tst_qjsengine
  • tst_qquicktextinput
164
1465 -
1466#if !CPU(X86_64)-
1467 void jmp_m(const void* address)-
1468 {-
1469 m_formatter.oneByteOp(OP_GROUP5_Ev, GROUP5_OP_JMPN, address);-
1470 }-
1471#endif-
1472-
1473 AssemblerLabel jne()-
1474 {-
1475 m_formatter.twoByteOp(jccRel32(ConditionNE));-
1476 return m_formatter.immediateRel32();
never executed: return m_formatter.immediateRel32();
0
1477 }-
1478 -
1479 AssemblerLabel jnz()-
1480 {-
1481 return jne();
never executed: return jne();
0
1482 }-
1483-
1484 AssemblerLabel je()-
1485 {-
1486 m_formatter.twoByteOp(jccRel32(ConditionE));-
1487 return m_formatter.immediateRel32();
never executed: return m_formatter.immediateRel32();
0
1488 }-
1489 -
1490 AssemblerLabel jz()-
1491 {-
1492 return je();
never executed: return je();
0
1493 }-
1494-
1495 AssemblerLabel jl()-
1496 {-
1497 m_formatter.twoByteOp(jccRel32(ConditionL));-
1498 return m_formatter.immediateRel32();
never executed: return m_formatter.immediateRel32();
0
1499 }-
1500 -
1501 AssemblerLabel jb()-
1502 {-
1503 m_formatter.twoByteOp(jccRel32(ConditionB));-
1504 return m_formatter.immediateRel32();
never executed: return m_formatter.immediateRel32();
0
1505 }-
1506 -
1507 AssemblerLabel jle()-
1508 {-
1509 m_formatter.twoByteOp(jccRel32(ConditionLE));-
1510 return m_formatter.immediateRel32();
never executed: return m_formatter.immediateRel32();
0
1511 }-
1512 -
1513 AssemblerLabel jbe()-
1514 {-
1515 m_formatter.twoByteOp(jccRel32(ConditionBE));-
1516 return m_formatter.immediateRel32();
never executed: return m_formatter.immediateRel32();
0
1517 }-
1518 -
1519 AssemblerLabel jge()-
1520 {-
1521 m_formatter.twoByteOp(jccRel32(ConditionGE));-
1522 return m_formatter.immediateRel32();
never executed: return m_formatter.immediateRel32();
0
1523 }-
1524-
1525 AssemblerLabel jg()-
1526 {-
1527 m_formatter.twoByteOp(jccRel32(ConditionG));-
1528 return m_formatter.immediateRel32();
never executed: return m_formatter.immediateRel32();
0
1529 }-
1530-
1531 AssemblerLabel ja()-
1532 {-
1533 m_formatter.twoByteOp(jccRel32(ConditionA));-
1534 return m_formatter.immediateRel32();
never executed: return m_formatter.immediateRel32();
0
1535 }-
1536 -
1537 AssemblerLabel jae()-
1538 {-
1539 m_formatter.twoByteOp(jccRel32(ConditionAE));-
1540 return m_formatter.immediateRel32();
never executed: return m_formatter.immediateRel32();
0
1541 }-
1542 -
1543 AssemblerLabel jo()-
1544 {-
1545 m_formatter.twoByteOp(jccRel32(ConditionO));-
1546 return m_formatter.immediateRel32();
never executed: return m_formatter.immediateRel32();
0
1547 }-
1548-
1549 AssemblerLabel jnp()-
1550 {-
1551 m_formatter.twoByteOp(jccRel32(ConditionNP));-
1552 return m_formatter.immediateRel32();
never executed: return m_formatter.immediateRel32();
0
1553 }-
1554-
1555 AssemblerLabel jp()-
1556 {-
1557 m_formatter.twoByteOp(jccRel32(ConditionP));-
1558 return m_formatter.immediateRel32();
never executed: return m_formatter.immediateRel32();
0
1559 }-
1560 -
1561 AssemblerLabel js()-
1562 {-
1563 m_formatter.twoByteOp(jccRel32(ConditionS));-
1564 return m_formatter.immediateRel32();
never executed: return m_formatter.immediateRel32();
0
1565 }-
1566-
1567 AssemblerLabel jCC(Condition cond)-
1568 {-
1569 m_formatter.twoByteOp(jccRel32(cond));-
1570 return m_formatter.immediateRel32();
executed 6334238 times by 153 tests: return m_formatter.immediateRel32();
Executed by:
  • tst_bindingdependencyapi
  • tst_drawingmodes
  • tst_ecmascripttests
  • tst_examples
  • tst_flickableinterop
  • tst_multipointtoucharea_interop
  • tst_parserstress
  • tst_qjsengine
  • tst_qjsonbinding
  • tst_qjsvalue
  • tst_qjsvalueiterator
  • tst_qmlcachegen
  • tst_qmldiskcache
  • tst_qqmlapplicationengine
  • tst_qqmlbinding
  • tst_qqmlcomponent
  • tst_qqmlconnections
  • tst_qqmlconsole
  • tst_qqmlcontext
  • tst_qqmldebugclient
  • tst_qqmldebugjs
  • tst_qqmldebuglocal
  • tst_qqmldebugservice
  • tst_qqmlecmascript
  • tst_qqmlenginecleanup
  • ...
6334238
1571 }-
1572-
1573 // SSE operations:-
1574-
1575 void addsd_rr(XMMRegisterID src, XMMRegisterID dst)-
1576 {-
1577 m_formatter.prefix(PRE_SSE_F2);-
1578 m_formatter.twoByteOp(OP2_ADDSD_VsdWsd, (RegisterID)dst, (RegisterID)src);-
1579 }
never executed: end of block
0
1580-
1581 void addsd_mr(int offset, RegisterID base, XMMRegisterID dst)-
1582 {-
1583 m_formatter.prefix(PRE_SSE_F2);-
1584 m_formatter.twoByteOp(OP2_ADDSD_VsdWsd, (RegisterID)dst, base, offset);-
1585 }
never executed: end of block
0
1586-
1587#if !CPU(X86_64)-
1588 void addsd_mr(const void* address, XMMRegisterID dst)-
1589 {-
1590 m_formatter.prefix(PRE_SSE_F2);-
1591 m_formatter.twoByteOp(OP2_ADDSD_VsdWsd, (RegisterID)dst, address);-
1592 }-
1593#endif-
1594-
1595 void cvtsi2sd_rr(RegisterID src, XMMRegisterID dst)-
1596 {-
1597 m_formatter.prefix(PRE_SSE_F2);-
1598 m_formatter.twoByteOp(OP2_CVTSI2SD_VsdEd, (RegisterID)dst, src);-
1599 }
never executed: end of block
0
1600-
1601 void cvtsi2sd_mr(int offset, RegisterID base, XMMRegisterID dst)-
1602 {-
1603 m_formatter.prefix(PRE_SSE_F2);-
1604 m_formatter.twoByteOp(OP2_CVTSI2SD_VsdEd, (RegisterID)dst, base, offset);-
1605 }
never executed: end of block
0
1606-
1607#if !CPU(X86_64)-
1608 void cvtsi2sd_mr(const void* address, XMMRegisterID dst)-
1609 {-
1610 m_formatter.prefix(PRE_SSE_F2);-
1611 m_formatter.twoByteOp(OP2_CVTSI2SD_VsdEd, (RegisterID)dst, address);-
1612 }-
1613#endif-
1614-
1615#if CPU(X86_64)-
1616 void cvtsiq2sd_rr(RegisterID src, FPRegisterID dst)-
1617 {-
1618 m_formatter.prefix(PRE_SSE_F2);-
1619 m_formatter.twoByteOp64(OP2_CVTSI2SD_VsdEd, (RegisterID)dst, src);-
1620 }
never executed: end of block
0
1621-
1622#endif-
1623-
1624 void cvttsd2si_rr(XMMRegisterID src, RegisterID dst)-
1625 {-
1626 m_formatter.prefix(PRE_SSE_F2);-
1627 m_formatter.twoByteOp(OP2_CVTTSD2SI_GdWsd, dst, (RegisterID)src);-
1628 }
never executed: end of block
0
1629-
1630 void cvtsd2ss_rr(XMMRegisterID src, XMMRegisterID dst)-
1631 {-
1632 m_formatter.prefix(PRE_SSE_F2);-
1633 m_formatter.twoByteOp(OP2_CVTSD2SS_VsdWsd, dst, (RegisterID)src);-
1634 }
never executed: end of block
0
1635-
1636 void cvtss2sd_rr(XMMRegisterID src, XMMRegisterID dst)-
1637 {-
1638 m_formatter.prefix(PRE_SSE_F3);-
1639 m_formatter.twoByteOp(OP2_CVTSS2SD_VsdWsd, dst, (RegisterID)src);-
1640 }
never executed: end of block
0
1641 -
1642#if CPU(X86_64)-
1643 void cvttsd2siq_rr(XMMRegisterID src, RegisterID dst)-
1644 {-
1645 m_formatter.prefix(PRE_SSE_F2);-
1646 m_formatter.twoByteOp64(OP2_CVTTSD2SI_GdWsd, dst, (RegisterID)src);-
1647 }
never executed: end of block
0
1648#endif-
1649-
1650 void movd_rr(XMMRegisterID src, RegisterID dst)-
1651 {-
1652 m_formatter.prefix(PRE_SSE_66);-
1653 m_formatter.twoByteOp(OP2_MOVD_EdVd, (RegisterID)src, dst);-
1654 }
never executed: end of block
0
1655-
1656 void movd_rr(RegisterID src, XMMRegisterID dst)-
1657 {-
1658 m_formatter.prefix(PRE_SSE_66);-
1659 m_formatter.twoByteOp(OP2_MOVD_VdEd, (RegisterID)dst, src);-
1660 }
never executed: end of block
0
1661-
1662#if CPU(X86_64)-
1663 void movq_rr(XMMRegisterID src, RegisterID dst)-
1664 {-
1665 m_formatter.prefix(PRE_SSE_66);-
1666 m_formatter.twoByteOp64(OP2_MOVD_EdVd, (RegisterID)src, dst);-
1667 }
never executed: end of block
0
1668-
1669 void movq_rr(RegisterID src, XMMRegisterID dst)-
1670 {-
1671 m_formatter.prefix(PRE_SSE_66);-
1672 m_formatter.twoByteOp64(OP2_MOVD_VdEd, (RegisterID)dst, src);-
1673 }
never executed: end of block
0
1674#endif-
1675-
1676 void movsd_rr(XMMRegisterID src, XMMRegisterID dst)-
1677 {-
1678 m_formatter.prefix(PRE_SSE_F2);-
1679 m_formatter.twoByteOp(OP2_MOVSD_VsdWsd, (RegisterID)dst, (RegisterID)src);-
1680 }
never executed: end of block
0
1681-
1682 void movsd_rm(XMMRegisterID src, int offset, RegisterID base)-
1683 {-
1684 m_formatter.prefix(PRE_SSE_F2);-
1685 m_formatter.twoByteOp(OP2_MOVSD_WsdVsd, (RegisterID)src, base, offset);-
1686 }
never executed: end of block
0
1687 -
1688 void movsd_rm(XMMRegisterID src, int offset, RegisterID base, RegisterID index, int scale)-
1689 {-
1690 m_formatter.prefix(PRE_SSE_F2);-
1691 m_formatter.twoByteOp(OP2_MOVSD_WsdVsd, (RegisterID)src, base, index, scale, offset);-
1692 }
never executed: end of block
0
1693 -
1694 void movss_rm(XMMRegisterID src, int offset, RegisterID base, RegisterID index, int scale)-
1695 {-
1696 m_formatter.prefix(PRE_SSE_F3);-
1697 m_formatter.twoByteOp(OP2_MOVSD_WsdVsd, (RegisterID)src, base, index, scale, offset);-
1698 }
never executed: end of block
0
1699 -
1700 void movsd_mr(int offset, RegisterID base, XMMRegisterID dst)-
1701 {-
1702 m_formatter.prefix(PRE_SSE_F2);-
1703 m_formatter.twoByteOp(OP2_MOVSD_VsdWsd, (RegisterID)dst, base, offset);-
1704 }
never executed: end of block
0
1705-
1706 void movsd_mr(int offset, RegisterID base, RegisterID index, int scale, XMMRegisterID dst)-
1707 {-
1708 m_formatter.prefix(PRE_SSE_F2);-
1709 m_formatter.twoByteOp(OP2_MOVSD_VsdWsd, dst, base, index, scale, offset);-
1710 }
never executed: end of block
0
1711 -
1712 void movss_mr(int offset, RegisterID base, RegisterID index, int scale, XMMRegisterID dst)-
1713 {-
1714 m_formatter.prefix(PRE_SSE_F3);-
1715 m_formatter.twoByteOp(OP2_MOVSD_VsdWsd, dst, base, index, scale, offset);-
1716 }
never executed: end of block
0
1717-
1718#if !CPU(X86_64)-
1719 void movsd_mr(const void* address, XMMRegisterID dst)-
1720 {-
1721 m_formatter.prefix(PRE_SSE_F2);-
1722 m_formatter.twoByteOp(OP2_MOVSD_VsdWsd, (RegisterID)dst, address);-
1723 }-
1724 void movsd_rm(XMMRegisterID src, const void* address)-
1725 {-
1726 m_formatter.prefix(PRE_SSE_F2);-
1727 m_formatter.twoByteOp(OP2_MOVSD_WsdVsd, (RegisterID)src, address);-
1728 }-
1729#endif-
1730-
1731 void mulsd_rr(XMMRegisterID src, XMMRegisterID dst)-
1732 {-
1733 m_formatter.prefix(PRE_SSE_F2);-
1734 m_formatter.twoByteOp(OP2_MULSD_VsdWsd, (RegisterID)dst, (RegisterID)src);-
1735 }
never executed: end of block
0
1736-
1737 void mulsd_mr(int offset, RegisterID base, XMMRegisterID dst)-
1738 {-
1739 m_formatter.prefix(PRE_SSE_F2);-
1740 m_formatter.twoByteOp(OP2_MULSD_VsdWsd, (RegisterID)dst, base, offset);-
1741 }
never executed: end of block
0
1742-
1743 void pextrw_irr(int whichWord, XMMRegisterID src, RegisterID dst)-
1744 {-
1745 m_formatter.prefix(PRE_SSE_66);-
1746 m_formatter.twoByteOp(OP2_PEXTRW_GdUdIb, (RegisterID)dst, (RegisterID)src);-
1747 m_formatter.immediate8(whichWord);-
1748 }
never executed: end of block
0
1749-
1750 void psllq_i8r(int imm, XMMRegisterID dst)-
1751 {-
1752 m_formatter.prefix(PRE_SSE_66);-
1753 m_formatter.twoByteOp8(OP2_PSLLQ_UdqIb, GROUP14_OP_PSLLQ, (RegisterID)dst);-
1754 m_formatter.immediate8(imm);-
1755 }
never executed: end of block
0
1756-
1757 void psrlq_i8r(int imm, XMMRegisterID dst)-
1758 {-
1759 m_formatter.prefix(PRE_SSE_66);-
1760 m_formatter.twoByteOp8(OP2_PSRLQ_UdqIb, GROUP14_OP_PSRLQ, (RegisterID)dst);-
1761 m_formatter.immediate8(imm);-
1762 }
never executed: end of block
0
1763-
1764 void por_rr(XMMRegisterID src, XMMRegisterID dst)-
1765 {-
1766 m_formatter.prefix(PRE_SSE_66);-
1767 m_formatter.twoByteOp(OP2_POR_VdqWdq, (RegisterID)dst, (RegisterID)src);-
1768 }
never executed: end of block
0
1769-
1770 void subsd_rr(XMMRegisterID src, XMMRegisterID dst)-
1771 {-
1772 m_formatter.prefix(PRE_SSE_F2);-
1773 m_formatter.twoByteOp(OP2_SUBSD_VsdWsd, (RegisterID)dst, (RegisterID)src);-
1774 }
never executed: end of block
0
1775-
1776 void subsd_mr(int offset, RegisterID base, XMMRegisterID dst)-
1777 {-
1778 m_formatter.prefix(PRE_SSE_F2);-
1779 m_formatter.twoByteOp(OP2_SUBSD_VsdWsd, (RegisterID)dst, base, offset);-
1780 }
never executed: end of block
0
1781-
1782 void ucomisd_rr(XMMRegisterID src, XMMRegisterID dst)-
1783 {-
1784 m_formatter.prefix(PRE_SSE_66);-
1785 m_formatter.twoByteOp(OP2_UCOMISD_VsdWsd, (RegisterID)dst, (RegisterID)src);-
1786 }
never executed: end of block
0
1787-
1788 void ucomisd_mr(int offset, RegisterID base, XMMRegisterID dst)-
1789 {-
1790 m_formatter.prefix(PRE_SSE_66);-
1791 m_formatter.twoByteOp(OP2_UCOMISD_VsdWsd, (RegisterID)dst, base, offset);-
1792 }
never executed: end of block
0
1793-
1794 void divsd_rr(XMMRegisterID src, XMMRegisterID dst)-
1795 {-
1796 m_formatter.prefix(PRE_SSE_F2);-
1797 m_formatter.twoByteOp(OP2_DIVSD_VsdWsd, (RegisterID)dst, (RegisterID)src);-
1798 }
never executed: end of block
0
1799-
1800 void divsd_mr(int offset, RegisterID base, XMMRegisterID dst)-
1801 {-
1802 m_formatter.prefix(PRE_SSE_F2);-
1803 m_formatter.twoByteOp(OP2_DIVSD_VsdWsd, (RegisterID)dst, base, offset);-
1804 }
never executed: end of block
0
1805-
1806 void xorpd_rr(XMMRegisterID src, XMMRegisterID dst)-
1807 {-
1808 m_formatter.prefix(PRE_SSE_66);-
1809 m_formatter.twoByteOp(OP2_XORPD_VpdWpd, (RegisterID)dst, (RegisterID)src);-
1810 }
never executed: end of block
0
1811-
1812 void andnpd_rr(XMMRegisterID src, XMMRegisterID dst)-
1813 {-
1814 m_formatter.prefix(PRE_SSE_66);-
1815 m_formatter.twoByteOp(OP2_ANDNPD_VpdWpd, (RegisterID)dst, (RegisterID)src);-
1816 }
never executed: end of block
0
1817-
1818 void sqrtsd_rr(XMMRegisterID src, XMMRegisterID dst)-
1819 {-
1820 m_formatter.prefix(PRE_SSE_F2);-
1821 m_formatter.twoByteOp(OP2_SQRTSD_VsdWsd, (RegisterID)dst, (RegisterID)src);-
1822 }
never executed: end of block
0
1823-
1824 // Misc instructions:-
1825-
1826 void int3()-
1827 {-
1828 m_formatter.oneByteOp(OP_INT3);-
1829 }
executed 12 times by 1 test: end of block
Executed by:
  • tst_ecmascripttests
12
1830 -
1831 void ret()-
1832 {-
1833 m_formatter.oneByteOp(OP_RET);-
1834 }
executed 3463187 times by 153 tests: end of block
Executed by:
  • tst_bindingdependencyapi
  • tst_drawingmodes
  • tst_ecmascripttests
  • tst_examples
  • tst_flickableinterop
  • tst_multipointtoucharea_interop
  • tst_parserstress
  • tst_qjsengine
  • tst_qjsonbinding
  • tst_qjsvalue
  • tst_qjsvalueiterator
  • tst_qmlcachegen
  • tst_qmldiskcache
  • tst_qqmlapplicationengine
  • tst_qqmlbinding
  • tst_qqmlcomponent
  • tst_qqmlconnections
  • tst_qqmlconsole
  • tst_qqmlcontext
  • tst_qqmldebugclient
  • tst_qqmldebugjs
  • tst_qqmldebuglocal
  • tst_qqmldebugservice
  • tst_qqmlecmascript
  • tst_qqmlenginecleanup
  • ...
3463187
1835-
1836 void predictNotTaken()-
1837 {-
1838 m_formatter.prefix(PRE_PREDICT_BRANCH_NOT_TAKEN);-
1839 }
never executed: end of block
0
1840-
1841 // Assembler admin methods:-
1842-
1843 size_t codeSize() const-
1844 {-
1845 return m_formatter.codeSize();
executed 1164428 times by 153 tests: return m_formatter.codeSize();
Executed by:
  • tst_bindingdependencyapi
  • tst_drawingmodes
  • tst_ecmascripttests
  • tst_examples
  • tst_flickableinterop
  • tst_multipointtoucharea_interop
  • tst_parserstress
  • tst_qjsengine
  • tst_qjsonbinding
  • tst_qjsvalue
  • tst_qjsvalueiterator
  • tst_qmlcachegen
  • tst_qmldiskcache
  • tst_qqmlapplicationengine
  • tst_qqmlbinding
  • tst_qqmlcomponent
  • tst_qqmlconnections
  • tst_qqmlconsole
  • tst_qqmlcontext
  • tst_qqmldebugclient
  • tst_qqmldebugjs
  • tst_qqmldebuglocal
  • tst_qqmldebugservice
  • tst_qqmlecmascript
  • tst_qqmlenginecleanup
  • ...
1164428
1846 }-
1847 -
1848 AssemblerLabel labelForWatchpoint()-
1849 {-
1850 AssemblerLabel result = m_formatter.label();-
1851 if (static_cast<int>(result.m_offset) != m_indexOfLastWatchpoint)
static_cast<in...LastWatchpointDescription
TRUEnever evaluated
FALSEnever evaluated
0
1852 result = label();
never executed: result = label();
0
1853 m_indexOfLastWatchpoint = result.m_offset;-
1854 m_indexOfTailOfLastWatchpoint = result.m_offset + maxJumpReplacementSize();-
1855 return result;
never executed: return result;
0
1856 }-
1857 -
1858 AssemblerLabel labelIgnoringWatchpoints()-
1859 {-
1860 return m_formatter.label();
never executed: return m_formatter.label();
0
1861 }-
1862-
1863 AssemblerLabel label()-
1864 {-
1865 AssemblerLabel result = m_formatter.label();-
1866 while (UNLIKELY(static_cast<int>(result.m_offset) < m_indexOfTailOfLastWatchpoint)) {
__builtin_expe...atchpoint), 0)Description
TRUEnever evaluated
FALSEevaluated 7513521 times by 153 tests
Evaluated by:
  • tst_bindingdependencyapi
  • tst_drawingmodes
  • tst_ecmascripttests
  • tst_examples
  • tst_flickableinterop
  • tst_multipointtoucharea_interop
  • tst_parserstress
  • tst_qjsengine
  • tst_qjsonbinding
  • tst_qjsvalue
  • tst_qjsvalueiterator
  • tst_qmlcachegen
  • tst_qmldiskcache
  • tst_qqmlapplicationengine
  • tst_qqmlbinding
  • tst_qqmlcomponent
  • tst_qqmlconnections
  • tst_qqmlconsole
  • tst_qqmlcontext
  • tst_qqmldebugclient
  • tst_qqmldebugjs
  • tst_qqmldebuglocal
  • tst_qqmldebugservice
  • tst_qqmlecmascript
  • tst_qqmlenginecleanup
  • ...
0-7513521
1867 nop();-
1868 result = m_formatter.label();-
1869 }
never executed: end of block
0
1870 return result;
executed 7514318 times by 153 tests: return result;
Executed by:
  • tst_bindingdependencyapi
  • tst_drawingmodes
  • tst_ecmascripttests
  • tst_examples
  • tst_flickableinterop
  • tst_multipointtoucharea_interop
  • tst_parserstress
  • tst_qjsengine
  • tst_qjsonbinding
  • tst_qjsvalue
  • tst_qjsvalueiterator
  • tst_qmlcachegen
  • tst_qmldiskcache
  • tst_qqmlapplicationengine
  • tst_qqmlbinding
  • tst_qqmlcomponent
  • tst_qqmlconnections
  • tst_qqmlconsole
  • tst_qqmlcontext
  • tst_qqmldebugclient
  • tst_qqmldebugjs
  • tst_qqmldebuglocal
  • tst_qqmldebugservice
  • tst_qqmlecmascript
  • tst_qqmlenginecleanup
  • ...
7514318
1871 }-
1872-
1873 AssemblerLabel align(int alignment)-
1874 {-
1875 while (!m_formatter.isAligned(alignment))
!m_formatter.i...ned(alignment)Description
TRUEnever evaluated
FALSEnever evaluated
0
1876 m_formatter.oneByteOp(OP_HLT);
never executed: m_formatter.oneByteOp(OP_HLT);
0
1877-
1878 return label();
never executed: return label();
0
1879 }-
1880-
1881 // Linking & patching:-
1882 //-
1883 // 'link' and 'patch' methods are for use on unprotected code - such as the code-
1884 // within the AssemblerBuffer, and code being patched by the patch buffer. Once-
1885 // code has been finalized it is (platform support permitting) within a non--
1886 // writable region of memory; to modify the code in an execute-only execuable-
1887 // pool the 'repatch' and 'relink' methods should be used.-
1888-
1889 void linkJump(AssemblerLabel from, AssemblerLabel to)-
1890 {-
1891 ASSERT(from.isSet());-
1892 ASSERT(to.isSet());-
1893-
1894 char* code = reinterpret_cast<char*>(m_formatter.data());-
1895 ASSERT(!loadPossiblyUnaligned<int32_t>(code, from.m_offset, -1));-
1896 setRel32(code + from.m_offset, code + to.m_offset);-
1897 }
executed 7524269 times by 153 tests: end of block
Executed by:
  • tst_bindingdependencyapi
  • tst_drawingmodes
  • tst_ecmascripttests
  • tst_examples
  • tst_flickableinterop
  • tst_multipointtoucharea_interop
  • tst_parserstress
  • tst_qjsengine
  • tst_qjsonbinding
  • tst_qjsvalue
  • tst_qjsvalueiterator
  • tst_qmlcachegen
  • tst_qmldiskcache
  • tst_qqmlapplicationengine
  • tst_qqmlbinding
  • tst_qqmlcomponent
  • tst_qqmlconnections
  • tst_qqmlconsole
  • tst_qqmlcontext
  • tst_qqmldebugclient
  • tst_qqmldebugjs
  • tst_qqmldebuglocal
  • tst_qqmldebugservice
  • tst_qqmlecmascript
  • tst_qqmlenginecleanup
  • ...
7524269
1898-
1899 template<typename T>-
1900 T loadPossiblyUnaligned(char *ptr, size_t offset, int idx)-
1901 {-
1902 T *t_ptr = &reinterpret_cast<T*>(ptr + offset)[idx];-
1903 T val;-
1904 memcpy(&val, t_ptr, sizeof(T));-
1905 return val;
executed 7524860 times by 153 tests: return val;
Executed by:
  • tst_bindingdependencyapi
  • tst_drawingmodes
  • tst_ecmascripttests
  • tst_examples
  • tst_flickableinterop
  • tst_multipointtoucharea_interop
  • tst_parserstress
  • tst_qjsengine
  • tst_qjsonbinding
  • tst_qjsvalue
  • tst_qjsvalueiterator
  • tst_qmlcachegen
  • tst_qmldiskcache
  • tst_qqmlapplicationengine
  • tst_qqmlbinding
  • tst_qqmlcomponent
  • tst_qqmlconnections
  • tst_qqmlconsole
  • tst_qqmlcontext
  • tst_qqmldebugclient
  • tst_qqmldebugjs
  • tst_qqmldebuglocal
  • tst_qqmldebugservice
  • tst_qqmlecmascript
  • tst_qqmlenginecleanup
  • ...
7524860
1906 }-
1907 -
1908 static void linkJump(void* code, AssemblerLabel from, void* to)-
1909 {-
1910 ASSERT(from.isSet());-
1911-
1912 setRel32(reinterpret_cast<char*>(code) + from.m_offset, to);-
1913 }
never executed: end of block
0
1914-
1915 static void linkCall(void* code, AssemblerLabel from, void* to)-
1916 {-
1917 ASSERT(from.isSet());-
1918-
1919 setRel32(reinterpret_cast<char*>(code) + from.m_offset, to);-
1920 }
never executed: end of block
0
1921-
1922 static void linkPointer(void* code, AssemblerLabel where, void* value)-
1923 {-
1924 ASSERT(where.isSet());-
1925-
1926 setPointer(reinterpret_cast<char*>(code) + where.m_offset, value);-
1927 }
executed 612 times by 10 tests: end of block
Executed by:
  • tst_ecmascripttests
  • tst_qjsengine
  • tst_qqmlecmascript
  • tst_qqmllistmodelworkerscript
  • tst_qqmlxmlhttprequest
  • tst_qquickanimationcontroller
  • tst_qquicklayouts
  • tst_qquicktextinput
  • tst_qquickworkerscript
  • tst_testfiltering
612
1928-
1929 static void relinkJump(void* from, void* to)-
1930 {-
1931 setRel32(from, to);-
1932 }
never executed: end of block
0
1933 -
1934 static void relinkCall(void* from, void* to)-
1935 {-
1936 setRel32(from, to);-
1937 }
never executed: end of block
0
1938 -
1939 static void repatchCompact(void* where, int32_t value)-
1940 {-
1941 ASSERT(value >= std::numeric_limits<int8_t>::min());-
1942 ASSERT(value <= std::numeric_limits<int8_t>::max());-
1943 setInt8(where, value);-
1944 }
never executed: end of block
0
1945-
1946 static void repatchInt32(void* where, int32_t value)-
1947 {-
1948 setInt32(where, value);-
1949 }
never executed: end of block
0
1950-
1951 static void repatchPointer(void* where, void* value)-
1952 {-
1953 setPointer(where, value);-
1954 }
never executed: end of block
0
1955 -
1956 static void* readPointer(void* where)-
1957 {-
1958 return reinterpret_cast<void**>(where)[-1];
never executed: return reinterpret_cast<void**>(where)[-1];
0
1959 }-
1960-
1961 static void replaceWithJump(void* instructionStart, void* to)-
1962 {-
1963 uint8_t* ptr = reinterpret_cast<uint8_t*>(instructionStart);-
1964 uint8_t* dstPtr = reinterpret_cast<uint8_t*>(to);-
1965 intptr_t distance = (intptr_t)(dstPtr - (ptr + 5));-
1966 ptr[0] = static_cast<uint8_t>(OP_JMP_rel32);-
1967 *reinterpret_cast<int32_t*>(ptr + 1) = static_cast<int32_t>(distance);-
1968 }
never executed: end of block
0
1969 -
1970 static ptrdiff_t maxJumpReplacementSize()-
1971 {-
1972 return 5;
never executed: return 5;
0
1973 }-
1974 -
1975#if CPU(X86_64)-
1976 static void revertJumpTo_movq_i64r(void* instructionStart, int64_t imm, RegisterID dst)-
1977 {-
1978 const int rexBytes = 1;-
1979 const int opcodeBytes = 1;-
1980 ASSERT(rexBytes + opcodeBytes <= maxJumpReplacementSize());-
1981 uint8_t* ptr = reinterpret_cast<uint8_t*>(instructionStart);-
1982 ptr[0] = PRE_REX | (1 << 3) | (dst >> 3);-
1983 ptr[1] = OP_MOV_EAXIv | (dst & 7);-
1984 -
1985 union {-
1986 uint64_t asWord;-
1987 uint8_t asBytes[8];-
1988 } u;-
1989 u.asWord = imm;-
1990 for (unsigned i = rexBytes + opcodeBytes; i < static_cast<unsigned>(maxJumpReplacementSize()); ++i)
i < static_cas...acementSize())Description
TRUEnever evaluated
FALSEnever evaluated
0
1991 ptr[i] = u.asBytes[i - rexBytes - opcodeBytes];
never executed: ptr[i] = u.asBytes[i - rexBytes - opcodeBytes];
0
1992 }
never executed: end of block
0
1993#endif-
1994 -
1995 static void revertJumpTo_cmpl_ir_force32(void* instructionStart, int32_t imm, RegisterID dst)-
1996 {-
1997 const int opcodeBytes = 1;-
1998 const int modRMBytes = 1;-
1999 ASSERT(opcodeBytes + modRMBytes <= maxJumpReplacementSize());-
2000 uint8_t* ptr = reinterpret_cast<uint8_t*>(instructionStart);-
2001 ptr[0] = OP_GROUP1_EvIz;-
2002 ptr[1] = (X86InstructionFormatter::ModRmRegister << 6) | (GROUP1_OP_CMP << 3) | dst;-
2003 union {-
2004 uint32_t asWord;-
2005 uint8_t asBytes[4];-
2006 } u;-
2007 u.asWord = imm;-
2008 for (unsigned i = opcodeBytes + modRMBytes; i < static_cast<unsigned>(maxJumpReplacementSize()); ++i)
i < static_cas...acementSize())Description
TRUEnever evaluated
FALSEnever evaluated
0
2009 ptr[i] = u.asBytes[i - opcodeBytes - modRMBytes];
never executed: ptr[i] = u.asBytes[i - opcodeBytes - modRMBytes];
0
2010 }
never executed: end of block
0
2011 -
2012 static void revertJumpTo_cmpl_im_force32(void* instructionStart, int32_t imm, int offset, RegisterID dst)-
2013 {-
2014 ASSERT_UNUSED(offset, !offset);-
2015 const int opcodeBytes = 1;-
2016 const int modRMBytes = 1;-
2017 ASSERT(opcodeBytes + modRMBytes <= maxJumpReplacementSize());-
2018 uint8_t* ptr = reinterpret_cast<uint8_t*>(instructionStart);-
2019 ptr[0] = OP_GROUP1_EvIz;-
2020 ptr[1] = (X86InstructionFormatter::ModRmMemoryNoDisp << 6) | (GROUP1_OP_CMP << 3) | dst;-
2021 union {-
2022 uint32_t asWord;-
2023 uint8_t asBytes[4];-
2024 } u;-
2025 u.asWord = imm;-
2026 for (unsigned i = opcodeBytes + modRMBytes; i < static_cast<unsigned>(maxJumpReplacementSize()); ++i)
i < static_cas...acementSize())Description
TRUEnever evaluated
FALSEnever evaluated
0
2027 ptr[i] = u.asBytes[i - opcodeBytes - modRMBytes];
never executed: ptr[i] = u.asBytes[i - opcodeBytes - modRMBytes];
0
2028 }
never executed: end of block
0
2029 -
2030 static void replaceWithLoad(void* instructionStart)-
2031 {-
2032 uint8_t* ptr = reinterpret_cast<uint8_t*>(instructionStart);-
2033#if CPU(X86_64)-
2034 if ((*ptr & ~15) == PRE_REX)
(*ptr & ~15) == PRE_REXDescription
TRUEnever evaluated
FALSEnever evaluated
0
2035 ptr++;
never executed: ptr++;
0
2036#endif-
2037 switch (*ptr) {-
2038 case OP_MOV_GvEv:
never executed: case OP_MOV_GvEv:
0
2039 break;
never executed: break;
0
2040 case OP_LEA:
never executed: case OP_LEA:
0
2041 *ptr = OP_MOV_GvEv;-
2042 break;
never executed: break;
0
2043 default:
never executed: default:
0
2044 RELEASE_ASSERT_NOT_REACHED();-
2045 }
never executed: end of block
0
2046 }-
2047 -
2048 static void replaceWithAddressComputation(void* instructionStart)-
2049 {-
2050 uint8_t* ptr = reinterpret_cast<uint8_t*>(instructionStart);-
2051#if CPU(X86_64)-
2052 if ((*ptr & ~15) == PRE_REX)
(*ptr & ~15) == PRE_REXDescription
TRUEnever evaluated
FALSEnever evaluated
0
2053 ptr++;
never executed: ptr++;
0
2054#endif-
2055 switch (*ptr) {-
2056 case OP_MOV_GvEv:
never executed: case OP_MOV_GvEv:
0
2057 *ptr = OP_LEA;-
2058 break;
never executed: break;
0
2059 case OP_LEA:
never executed: case OP_LEA:
0
2060 break;
never executed: break;
0
2061 default:
never executed: default:
0
2062 RELEASE_ASSERT_NOT_REACHED();-
2063 }
never executed: end of block
0
2064 }-
2065 -
2066 static unsigned getCallReturnOffset(AssemblerLabel call)-
2067 {-
2068 ASSERT(call.isSet());-
2069 return call.m_offset;
never executed: return call.m_offset;
0
2070 }-
2071-
2072 static void* getRelocatedAddress(void* code, AssemblerLabel label)-
2073 {-
2074 ASSERT(label.isSet());-
2075 return reinterpret_cast<void*>(reinterpret_cast<ptrdiff_t>(code) + label.m_offset);
executed 612 times by 10 tests: return reinterpret_cast<void*>(reinterpret_cast<ptrdiff_t>(code) + label.m_offset);
Executed by:
  • tst_ecmascripttests
  • tst_qjsengine
  • tst_qqmlecmascript
  • tst_qqmllistmodelworkerscript
  • tst_qqmlxmlhttprequest
  • tst_qquickanimationcontroller
  • tst_qquicklayouts
  • tst_qquicktextinput
  • tst_qquickworkerscript
  • tst_testfiltering
612
2076 }-
2077 -
2078 static int getDifferenceBetweenLabels(AssemblerLabel a, AssemblerLabel b)-
2079 {-
2080 return b.m_offset - a.m_offset;
never executed: return b.m_offset - a.m_offset;
0
2081 }-
2082 -
2083 PassRefPtr<ExecutableMemoryHandle> executableCopy(JSGlobalData& globalData, void* ownerUID, JITCompilationEffort effort)-
2084 {-
2085 return m_formatter.executableCopy(globalData, ownerUID, effort);
executed 1162035 times by 153 tests: return m_formatter.executableCopy(globalData, ownerUID, effort);
Executed by:
  • tst_bindingdependencyapi
  • tst_drawingmodes
  • tst_ecmascripttests
  • tst_examples
  • tst_flickableinterop
  • tst_multipointtoucharea_interop
  • tst_parserstress
  • tst_qjsengine
  • tst_qjsonbinding
  • tst_qjsvalue
  • tst_qjsvalueiterator
  • tst_qmlcachegen
  • tst_qmldiskcache
  • tst_qqmlapplicationengine
  • tst_qqmlbinding
  • tst_qqmlcomponent
  • tst_qqmlconnections
  • tst_qqmlconsole
  • tst_qqmlcontext
  • tst_qqmldebugclient
  • tst_qqmldebugjs
  • tst_qqmldebuglocal
  • tst_qqmldebugservice
  • tst_qqmlecmascript
  • tst_qqmlenginecleanup
  • ...
1162035
2086 }-
2087-
2088 unsigned debugOffset() { return m_formatter.debugOffset(); }
never executed: return m_formatter.debugOffset();
0
2089-
2090 void nop()-
2091 {-
2092 m_formatter.oneByteOp(OP_NOP);-
2093 }
never executed: end of block
0
2094-
2095 // This is a no-op on x86-
2096 ALWAYS_INLINE static void cacheFlush(void*, size_t) { }-
2097-
2098private:-
2099-
2100 static void setPointer(void* where, void* value)-
2101 {-
2102 reinterpret_cast<void**>(where)[-1] = value;-
2103 }
executed 612 times by 10 tests: end of block
Executed by:
  • tst_ecmascripttests
  • tst_qjsengine
  • tst_qqmlecmascript
  • tst_qqmllistmodelworkerscript
  • tst_qqmlxmlhttprequest
  • tst_qquickanimationcontroller
  • tst_qquicklayouts
  • tst_qquicktextinput
  • tst_qquickworkerscript
  • tst_testfiltering
612
2104-
2105 static void setInt32(void* where, int32_t value)-
2106 {-
2107 storePossiblyUnaligned<int32_t>(where, -1, value);-
2108 }
executed 7526539 times by 153 tests: end of block
Executed by:
  • tst_bindingdependencyapi
  • tst_drawingmodes
  • tst_ecmascripttests
  • tst_examples
  • tst_flickableinterop
  • tst_multipointtoucharea_interop
  • tst_parserstress
  • tst_qjsengine
  • tst_qjsonbinding
  • tst_qjsvalue
  • tst_qjsvalueiterator
  • tst_qmlcachegen
  • tst_qmldiskcache
  • tst_qqmlapplicationengine
  • tst_qqmlbinding
  • tst_qqmlcomponent
  • tst_qqmlconnections
  • tst_qqmlconsole
  • tst_qqmlcontext
  • tst_qqmldebugclient
  • tst_qqmldebugjs
  • tst_qqmldebuglocal
  • tst_qqmldebugservice
  • tst_qqmlecmascript
  • tst_qqmlenginecleanup
  • ...
7526539
2109-
2110 template <typename T>-
2111 static void storePossiblyUnaligned(void *where, int idx, T value)-
2112 {-
2113 T *ptr = &reinterpret_cast<T*>(where)[idx];-
2114 memcpy(ptr, &value, sizeof(T));-
2115 }
executed 7524745 times by 153 tests: end of block
Executed by:
  • tst_bindingdependencyapi
  • tst_drawingmodes
  • tst_ecmascripttests
  • tst_examples
  • tst_flickableinterop
  • tst_multipointtoucharea_interop
  • tst_parserstress
  • tst_qjsengine
  • tst_qjsonbinding
  • tst_qjsvalue
  • tst_qjsvalueiterator
  • tst_qmlcachegen
  • tst_qmldiskcache
  • tst_qqmlapplicationengine
  • tst_qqmlbinding
  • tst_qqmlcomponent
  • tst_qqmlconnections
  • tst_qqmlconsole
  • tst_qqmlcontext
  • tst_qqmldebugclient
  • tst_qqmldebugjs
  • tst_qqmldebuglocal
  • tst_qqmldebugservice
  • tst_qqmlecmascript
  • tst_qqmlenginecleanup
  • ...
7524745
2116 -
2117 static void setInt8(void* where, int8_t value)-
2118 {-
2119 reinterpret_cast<int8_t*>(where)[-1] = value;-
2120 }
never executed: end of block
0
2121-
2122 static void setRel32(void* from, void* to)-
2123 {-
2124 intptr_t offset = reinterpret_cast<intptr_t>(to) - reinterpret_cast<intptr_t>(from);-
2125 ASSERT(offset == static_cast<int32_t>(offset));-
2126-
2127 setInt32(from, offset);-
2128 }
executed 7527014 times by 153 tests: end of block
Executed by:
  • tst_bindingdependencyapi
  • tst_drawingmodes
  • tst_ecmascripttests
  • tst_examples
  • tst_flickableinterop
  • tst_multipointtoucharea_interop
  • tst_parserstress
  • tst_qjsengine
  • tst_qjsonbinding
  • tst_qjsvalue
  • tst_qjsvalueiterator
  • tst_qmlcachegen
  • tst_qmldiskcache
  • tst_qqmlapplicationengine
  • tst_qqmlbinding
  • tst_qqmlcomponent
  • tst_qqmlconnections
  • tst_qqmlconsole
  • tst_qqmlcontext
  • tst_qqmldebugclient
  • tst_qqmldebugjs
  • tst_qqmldebuglocal
  • tst_qqmldebugservice
  • tst_qqmlecmascript
  • tst_qqmlenginecleanup
  • ...
7527014
2129-
2130 class X86InstructionFormatter {-
2131-
2132 static const int maxInstructionSize = 16;-
2133-
2134 public:-
2135-
2136 enum ModRmMode {-
2137 ModRmMemoryNoDisp,-
2138 ModRmMemoryDisp8,-
2139 ModRmMemoryDisp32,-
2140 ModRmRegister,-
2141 };-
2142-
2143 // Legacy prefix bytes:-
2144 //-
2145 // These are emmitted prior to the instruction.-
2146-
2147 void prefix(OneByteOpcodeID pre)-
2148 {-
2149 m_buffer.putByte(pre);-
2150 }
never executed: end of block
0
2151-
2152 // Word-sized operands / no operand instruction formatters.-
2153 //-
2154 // In addition to the opcode, the following operand permutations are supported:-
2155 // * None - instruction takes no operands.-
2156 // * One register - the low three bits of the RegisterID are added into the opcode.-
2157 // * Two registers - encode a register form ModRm (for all ModRm formats, the reg field is passed first, and a GroupOpcodeID may be passed in its place).-
2158 // * Three argument ModRM - a register, and a register and an offset describing a memory operand.-
2159 // * Five argument ModRM - a register, and a base register, an index, scale, and offset describing a memory operand.-
2160 //-
2161 // For 32-bit x86 targets, the address operand may also be provided as a void*.-
2162 // On 64-bit targets REX prefixes will be planted as necessary, where high numbered registers are used.-
2163 //-
2164 // The twoByteOp methods plant two-byte Intel instructions sequences (first opcode byte 0x0F).-
2165-
2166 void oneByteOp(OneByteOpcodeID opcode)-
2167 {-
2168 m_buffer.ensureSpace(maxInstructionSize);-
2169 m_buffer.putByteUnchecked(opcode);-
2170 }
executed 4652047 times by 153 tests: end of block
Executed by:
  • tst_bindingdependencyapi
  • tst_drawingmodes
  • tst_ecmascripttests
  • tst_examples
  • tst_flickableinterop
  • tst_multipointtoucharea_interop
  • tst_parserstress
  • tst_qjsengine
  • tst_qjsonbinding
  • tst_qjsvalue
  • tst_qjsvalueiterator
  • tst_qmlcachegen
  • tst_qmldiskcache
  • tst_qqmlapplicationengine
  • tst_qqmlbinding
  • tst_qqmlcomponent
  • tst_qqmlconnections
  • tst_qqmlconsole
  • tst_qqmlcontext
  • tst_qqmldebugclient
  • tst_qqmldebugjs
  • tst_qqmldebuglocal
  • tst_qqmldebugservice
  • tst_qqmlecmascript
  • tst_qqmlenginecleanup
  • ...
4652047
2171-
2172 void oneByteOp(OneByteOpcodeID opcode, RegisterID reg)-
2173 {-
2174 m_buffer.ensureSpace(maxInstructionSize);-
2175 emitRexIfNeeded(0, 0, reg);-
2176 m_buffer.putByteUnchecked(opcode + (reg & 7));-
2177 }
executed 9379993 times by 153 tests: end of block
Executed by:
  • tst_bindingdependencyapi
  • tst_drawingmodes
  • tst_ecmascripttests
  • tst_examples
  • tst_flickableinterop
  • tst_multipointtoucharea_interop
  • tst_parserstress
  • tst_qjsengine
  • tst_qjsonbinding
  • tst_qjsvalue
  • tst_qjsvalueiterator
  • tst_qmlcachegen
  • tst_qmldiskcache
  • tst_qqmlapplicationengine
  • tst_qqmlbinding
  • tst_qqmlcomponent
  • tst_qqmlconnections
  • tst_qqmlconsole
  • tst_qqmlcontext
  • tst_qqmldebugclient
  • tst_qqmldebugjs
  • tst_qqmldebuglocal
  • tst_qqmldebugservice
  • tst_qqmlecmascript
  • tst_qqmlenginecleanup
  • ...
9379993
2178-
2179 void oneByteOp(OneByteOpcodeID opcode, int reg, RegisterID rm)-
2180 {-
2181 m_buffer.ensureSpace(maxInstructionSize);-
2182 emitRexIfNeeded(reg, 0, rm);-
2183 m_buffer.putByteUnchecked(opcode);-
2184 registerModRM(reg, rm);-
2185 }
executed 15387540 times by 153 tests: end of block
Executed by:
  • tst_bindingdependencyapi
  • tst_drawingmodes
  • tst_ecmascripttests
  • tst_examples
  • tst_flickableinterop
  • tst_multipointtoucharea_interop
  • tst_parserstress
  • tst_qjsengine
  • tst_qjsonbinding
  • tst_qjsvalue
  • tst_qjsvalueiterator
  • tst_qmlcachegen
  • tst_qmldiskcache
  • tst_qqmlapplicationengine
  • tst_qqmlbinding
  • tst_qqmlcomponent
  • tst_qqmlconnections
  • tst_qqmlconsole
  • tst_qqmlcontext
  • tst_qqmldebugclient
  • tst_qqmldebugjs
  • tst_qqmldebuglocal
  • tst_qqmldebugservice
  • tst_qqmlecmascript
  • tst_qqmlenginecleanup
  • ...
15387540
2186-
2187 void oneByteOp(OneByteOpcodeID opcode, int reg, RegisterID base, int offset)-
2188 {-
2189 m_buffer.ensureSpace(maxInstructionSize);-
2190 emitRexIfNeeded(reg, 0, base);-
2191 m_buffer.putByteUnchecked(opcode);-
2192 memoryModRM(reg, base, offset);-
2193 }
executed 3560084 times by 153 tests: end of block
Executed by:
  • tst_bindingdependencyapi
  • tst_drawingmodes
  • tst_ecmascripttests
  • tst_examples
  • tst_flickableinterop
  • tst_multipointtoucharea_interop
  • tst_parserstress
  • tst_qjsengine
  • tst_qjsonbinding
  • tst_qjsvalue
  • tst_qjsvalueiterator
  • tst_qmlcachegen
  • tst_qmldiskcache
  • tst_qqmlapplicationengine
  • tst_qqmlbinding
  • tst_qqmlcomponent
  • tst_qqmlconnections
  • tst_qqmlconsole
  • tst_qqmlcontext
  • tst_qqmldebugclient
  • tst_qqmldebugjs
  • tst_qqmldebuglocal
  • tst_qqmldebugservice
  • tst_qqmlecmascript
  • tst_qqmlenginecleanup
  • ...
3560084
2194-
2195 void oneByteOp_disp32(OneByteOpcodeID opcode, int reg, RegisterID base, int offset)-
2196 {-
2197 m_buffer.ensureSpace(maxInstructionSize);-
2198 emitRexIfNeeded(reg, 0, base);-
2199 m_buffer.putByteUnchecked(opcode);-
2200 memoryModRM_disp32(reg, base, offset);-
2201 }
never executed: end of block
0
2202 -
2203 void oneByteOp_disp8(OneByteOpcodeID opcode, int reg, RegisterID base, int offset)-
2204 {-
2205 m_buffer.ensureSpace(maxInstructionSize);-
2206 emitRexIfNeeded(reg, 0, base);-
2207 m_buffer.putByteUnchecked(opcode);-
2208 memoryModRM_disp8(reg, base, offset);-
2209 }
never executed: end of block
0
2210-
2211 void oneByteOp(OneByteOpcodeID opcode, int reg, RegisterID base, RegisterID index, int scale, int offset)-
2212 {-
2213 m_buffer.ensureSpace(maxInstructionSize);-
2214 emitRexIfNeeded(reg, index, base);-
2215 m_buffer.putByteUnchecked(opcode);-
2216 memoryModRM(reg, base, index, scale, offset);-
2217 }
executed 792686 times by 6 tests: end of block
Executed by:
  • tst_ecmascripttests
  • tst_examples
  • tst_qjsengine
  • tst_qjsvalue
  • tst_qqmlxmlhttprequest
  • tst_qquicktextinput
792686
2218-
2219#if !CPU(X86_64)-
2220 void oneByteOp(OneByteOpcodeID opcode, int reg, const void* address)-
2221 {-
2222 m_buffer.ensureSpace(maxInstructionSize);-
2223 m_buffer.putByteUnchecked(opcode);-
2224 memoryModRM(reg, address);-
2225 }-
2226#endif-
2227-
2228 void twoByteOp(TwoByteOpcodeID opcode)-
2229 {-
2230 m_buffer.ensureSpace(maxInstructionSize);-
2231 m_buffer.putByteUnchecked(OP_2BYTE_ESCAPE);-
2232 m_buffer.putByteUnchecked(opcode);-
2233 }
executed 6335785 times by 153 tests: end of block
Executed by:
  • tst_bindingdependencyapi
  • tst_drawingmodes
  • tst_ecmascripttests
  • tst_examples
  • tst_flickableinterop
  • tst_multipointtoucharea_interop
  • tst_parserstress
  • tst_qjsengine
  • tst_qjsonbinding
  • tst_qjsvalue
  • tst_qjsvalueiterator
  • tst_qmlcachegen
  • tst_qmldiskcache
  • tst_qqmlapplicationengine
  • tst_qqmlbinding
  • tst_qqmlcomponent
  • tst_qqmlconnections
  • tst_qqmlconsole
  • tst_qqmlcontext
  • tst_qqmldebugclient
  • tst_qqmldebugjs
  • tst_qqmldebuglocal
  • tst_qqmldebugservice
  • tst_qqmlecmascript
  • tst_qqmlenginecleanup
  • ...
6335785
2234-
2235 void twoByteOp(TwoByteOpcodeID opcode, int reg, RegisterID rm)-
2236 {-
2237 m_buffer.ensureSpace(maxInstructionSize);-
2238 emitRexIfNeeded(reg, 0, rm);-
2239 m_buffer.putByteUnchecked(OP_2BYTE_ESCAPE);-
2240 m_buffer.putByteUnchecked(opcode);-
2241 registerModRM(reg, rm);-
2242 }
executed 896 times by 13 tests: end of block
Executed by:
  • tst_examples
  • tst_flickableinterop
  • tst_qqmlecmascript
  • tst_qquickaccessible
  • tst_qquickdraghandler
  • tst_qquickgridview
  • tst_qquickitem2
  • tst_qquicklayouts
  • tst_qquicklistview
  • tst_qquickpositioners
  • tst_qquickrepeater
  • tst_qquicktaphandler
  • tst_qquicktext
896
2243-
2244 void twoByteOp(TwoByteOpcodeID opcode, int reg, RegisterID base, int offset)-
2245 {-
2246 m_buffer.ensureSpace(maxInstructionSize);-
2247 emitRexIfNeeded(reg, 0, base);-
2248 m_buffer.putByteUnchecked(OP_2BYTE_ESCAPE);-
2249 m_buffer.putByteUnchecked(opcode);-
2250 memoryModRM(reg, base, offset);-
2251 }
never executed: end of block
0
2252-
2253 void twoByteOp(TwoByteOpcodeID opcode, int reg, RegisterID base, RegisterID index, int scale, int offset)-
2254 {-
2255 m_buffer.ensureSpace(maxInstructionSize);-
2256 emitRexIfNeeded(reg, index, base);-
2257 m_buffer.putByteUnchecked(OP_2BYTE_ESCAPE);-
2258 m_buffer.putByteUnchecked(opcode);-
2259 memoryModRM(reg, base, index, scale, offset);-
2260 }
executed 796940 times by 9 tests: end of block
Executed by:
  • tst_ecmascripttests
  • tst_examples
  • tst_qjsengine
  • tst_qjsvalue
  • tst_qqmlecmascript
  • tst_qqmlxmlhttprequest
  • tst_qquicklistview
  • tst_qquicktextinput
  • tst_qquickworkerscript
796940
2261-
2262#if !CPU(X86_64)-
2263 void twoByteOp(TwoByteOpcodeID opcode, int reg, const void* address)-
2264 {-
2265 m_buffer.ensureSpace(maxInstructionSize);-
2266 m_buffer.putByteUnchecked(OP_2BYTE_ESCAPE);-
2267 m_buffer.putByteUnchecked(opcode);-
2268 memoryModRM(reg, address);-
2269 }-
2270#endif-
2271-
2272#if CPU(X86_64)-
2273 // Quad-word-sized operands:-
2274 //-
2275 // Used to format 64-bit operantions, planting a REX.w prefix.-
2276 // When planting d64 or f64 instructions, not requiring a REX.w prefix,-
2277 // the normal (non-'64'-postfixed) formatters should be used.-
2278-
2279 void oneByteOp64(OneByteOpcodeID opcode)-
2280 {-
2281 m_buffer.ensureSpace(maxInstructionSize);-
2282 emitRexW(0, 0, 0);-
2283 m_buffer.putByteUnchecked(opcode);-
2284 }
never executed: end of block
0
2285-
2286 void oneByteOp64(OneByteOpcodeID opcode, RegisterID reg)-
2287 {-
2288 m_buffer.ensureSpace(maxInstructionSize);-
2289 emitRexW(0, 0, reg);-
2290 m_buffer.putByteUnchecked(opcode + (reg & 7));-
2291 }
executed 2429819 times by 153 tests: end of block
Executed by:
  • tst_bindingdependencyapi
  • tst_drawingmodes
  • tst_ecmascripttests
  • tst_examples
  • tst_flickableinterop
  • tst_multipointtoucharea_interop
  • tst_parserstress
  • tst_qjsengine
  • tst_qjsonbinding
  • tst_qjsvalue
  • tst_qjsvalueiterator
  • tst_qmlcachegen
  • tst_qmldiskcache
  • tst_qqmlapplicationengine
  • tst_qqmlbinding
  • tst_qqmlcomponent
  • tst_qqmlconnections
  • tst_qqmlconsole
  • tst_qqmlcontext
  • tst_qqmldebugclient
  • tst_qqmldebugjs
  • tst_qqmldebuglocal
  • tst_qqmldebugservice
  • tst_qqmlecmascript
  • tst_qqmlenginecleanup
  • ...
2429819
2292-
2293 void oneByteOp64(OneByteOpcodeID opcode, int reg, RegisterID rm)-
2294 {-
2295 m_buffer.ensureSpace(maxInstructionSize);-
2296 emitRexW(reg, 0, rm);-
2297 m_buffer.putByteUnchecked(opcode);-
2298 registerModRM(reg, rm);-
2299 }
executed 3652121 times by 153 tests: end of block
Executed by:
  • tst_bindingdependencyapi
  • tst_drawingmodes
  • tst_ecmascripttests
  • tst_examples
  • tst_flickableinterop
  • tst_multipointtoucharea_interop
  • tst_parserstress
  • tst_qjsengine
  • tst_qjsonbinding
  • tst_qjsvalue
  • tst_qjsvalueiterator
  • tst_qmlcachegen
  • tst_qmldiskcache
  • tst_qqmlapplicationengine
  • tst_qqmlbinding
  • tst_qqmlcomponent
  • tst_qqmlconnections
  • tst_qqmlconsole
  • tst_qqmlcontext
  • tst_qqmldebugclient
  • tst_qqmldebugjs
  • tst_qqmldebuglocal
  • tst_qqmldebugservice
  • tst_qqmlecmascript
  • tst_qqmlenginecleanup
  • ...
3652121
2300-
2301 void oneByteOp64(OneByteOpcodeID opcode, int reg, RegisterID base, int offset)-
2302 {-
2303 m_buffer.ensureSpace(maxInstructionSize);-
2304 emitRexW(reg, 0, base);-
2305 m_buffer.putByteUnchecked(opcode);-
2306 memoryModRM(reg, base, offset);-
2307 }
executed 197748 times by 65 tests: end of block
Executed by:
  • tst_ecmascripttests
  • tst_examples
  • tst_flickableinterop
  • tst_multipointtoucharea_interop
  • tst_qjsengine
  • tst_qjsvalue
  • tst_qqmlbinding
  • tst_qqmlcomponent
  • tst_qqmlcontext
  • tst_qqmlecmascript
  • tst_qqmlenginedebugservice
  • tst_qqmlinstantiator
  • tst_qqmlitemmodels
  • tst_qqmllistmodel
  • tst_qqmllistmodelworkerscript
  • tst_qqmllocale
  • tst_qqmlnotifier
  • tst_qqmlprofilerservice
  • tst_qqmlproperty
  • tst_qqmlqt
  • tst_qqmlvaluetypeproviders
  • tst_qqmlvaluetypes
  • tst_qqmlxmlhttprequest
  • tst_qquickaccessible
  • tst_qquickanimatedimage
  • ...
197748
2308-
2309 void oneByteOp64_disp32(OneByteOpcodeID opcode, int reg, RegisterID base, int offset)-
2310 {-
2311 m_buffer.ensureSpace(maxInstructionSize);-
2312 emitRexW(reg, 0, base);-
2313 m_buffer.putByteUnchecked(opcode);-
2314 memoryModRM_disp32(reg, base, offset);-
2315 }
never executed: end of block
0
2316 -
2317 void oneByteOp64_disp8(OneByteOpcodeID opcode, int reg, RegisterID base, int offset)-
2318 {-
2319 m_buffer.ensureSpace(maxInstructionSize);-
2320 emitRexW(reg, 0, base);-
2321 m_buffer.putByteUnchecked(opcode);-
2322 memoryModRM_disp8(reg, base, offset);-
2323 }
never executed: end of block
0
2324-
2325 void oneByteOp64(OneByteOpcodeID opcode, int reg, RegisterID base, RegisterID index, int scale, int offset)-
2326 {-
2327 m_buffer.ensureSpace(maxInstructionSize);-
2328 emitRexW(reg, index, base);-
2329 m_buffer.putByteUnchecked(opcode);-
2330 memoryModRM(reg, base, index, scale, offset);-
2331 }
never executed: end of block
0
2332-
2333 void twoByteOp64(TwoByteOpcodeID opcode, int reg, RegisterID rm)-
2334 {-
2335 m_buffer.ensureSpace(maxInstructionSize);-
2336 emitRexW(reg, 0, rm);-
2337 m_buffer.putByteUnchecked(OP_2BYTE_ESCAPE);-
2338 m_buffer.putByteUnchecked(opcode);-
2339 registerModRM(reg, rm);-
2340 }
never executed: end of block
0
2341#endif-
2342-
2343 // Byte-operands:-
2344 //-
2345 // These methods format byte operations. Byte operations differ from the normal-
2346 // formatters in the circumstances under which they will decide to emit REX prefixes.-
2347 // These should be used where any register operand signifies a byte register.-
2348 //-
2349 // The disctinction is due to the handling of register numbers in the range 4..7 on-
2350 // x86-64. These register numbers may either represent the second byte of the first-
2351 // four registers (ah..bh) or the first byte of the second four registers (spl..dil).-
2352 //-
2353 // Since ah..bh cannot be used in all permutations of operands (specifically cannot-
2354 // be accessed where a REX prefix is present), these are likely best treated as-
2355 // deprecated. In order to ensure the correct registers spl..dil are selected a-
2356 // REX prefix will be emitted for any byte register operand in the range 4..15.-
2357 //-
2358 // These formatters may be used in instructions where a mix of operand sizes, in which-
2359 // case an unnecessary REX will be emitted, for example:-
2360 // movzbl %al, %edi-
2361 // In this case a REX will be planted since edi is 7 (and were this a byte operand-
2362 // a REX would be required to specify dil instead of bh). Unneeded REX prefixes will-
2363 // be silently ignored by the processor.-
2364 //-
2365 // Address operands should still be checked using regRequiresRex(), while byteRegRequiresRex()-
2366 // is provided to check byte register operands.-
2367-
2368 void oneByteOp8(OneByteOpcodeID opcode, GroupOpcodeID groupOp, RegisterID rm)-
2369 {-
2370 m_buffer.ensureSpace(maxInstructionSize);-
2371 emitRexIf(byteRegRequiresRex(rm), 0, 0, rm);-
2372 m_buffer.putByteUnchecked(opcode);-
2373 registerModRM(groupOp, rm);-
2374 }
never executed: end of block
0
2375-
2376 void oneByteOp8(OneByteOpcodeID opcode, int reg, RegisterID rm)-
2377 {-
2378 m_buffer.ensureSpace(maxInstructionSize);-
2379 emitRexIf(byteRegRequiresRex(reg) || byteRegRequiresRex(rm), reg, 0, rm);-
2380 m_buffer.putByteUnchecked(opcode);-
2381 registerModRM(reg, rm);-
2382 }
never executed: end of block
0
2383-
2384 void oneByteOp8(OneByteOpcodeID opcode, int reg, RegisterID base, RegisterID index, int scale, int offset)-
2385 {-
2386 m_buffer.ensureSpace(maxInstructionSize);-
2387 emitRexIf(byteRegRequiresRex(reg) || regRequiresRex(index) || regRequiresRex(base), reg, index, base);-
2388 m_buffer.putByteUnchecked(opcode);-
2389 memoryModRM(reg, base, index, scale, offset);-
2390 }
never executed: end of block
0
2391-
2392 void twoByteOp8(TwoByteOpcodeID opcode, RegisterID reg, RegisterID rm)-
2393 {-
2394 m_buffer.ensureSpace(maxInstructionSize);-
2395 emitRexIf(byteRegRequiresRex(reg)|byteRegRequiresRex(rm), reg, 0, rm);-
2396 m_buffer.putByteUnchecked(OP_2BYTE_ESCAPE);-
2397 m_buffer.putByteUnchecked(opcode);-
2398 registerModRM(reg, rm);-
2399 }
executed 2610 times by 34 tests: end of block
Executed by:
  • tst_examples
  • tst_flickableinterop
  • tst_qjsengine
  • tst_qjsvalue
  • tst_qqmlbinding
  • tst_qqmlecmascript
  • tst_qqmlinstantiator
  • tst_qqmlitemmodels
  • tst_qqmllistmodelworkerscript
  • tst_qqmllocale
  • tst_qqmlprofilerservice
  • tst_qqmlqt
  • tst_qqmlvaluetypeproviders
  • tst_qqmlxmlhttprequest
  • tst_qquickanimatedimage
  • tst_qquickanimationcontroller
  • tst_qquickbehaviors
  • tst_qquickcustomaffector
  • tst_qquickdraghandler
  • tst_qquickgridview
  • tst_qquickitem2
  • tst_qquicklayouts
  • tst_qquicklistview
  • tst_qquickmousearea
  • tst_qquickpositioners
  • ...
2610
2400-
2401 void twoByteOp8(TwoByteOpcodeID opcode, GroupOpcodeID groupOp, RegisterID rm)-
2402 {-
2403 m_buffer.ensureSpace(maxInstructionSize);-
2404 emitRexIf(byteRegRequiresRex(rm), 0, 0, rm);-
2405 m_buffer.putByteUnchecked(OP_2BYTE_ESCAPE);-
2406 m_buffer.putByteUnchecked(opcode);-
2407 registerModRM(groupOp, rm);-
2408 }
executed 2610 times by 34 tests: end of block
Executed by:
  • tst_examples
  • tst_flickableinterop
  • tst_qjsengine
  • tst_qjsvalue
  • tst_qqmlbinding
  • tst_qqmlecmascript
  • tst_qqmlinstantiator
  • tst_qqmlitemmodels
  • tst_qqmllistmodelworkerscript
  • tst_qqmllocale
  • tst_qqmlprofilerservice
  • tst_qqmlqt
  • tst_qqmlvaluetypeproviders
  • tst_qqmlxmlhttprequest
  • tst_qquickanimatedimage
  • tst_qquickanimationcontroller
  • tst_qquickbehaviors
  • tst_qquickcustomaffector
  • tst_qquickdraghandler
  • tst_qquickgridview
  • tst_qquickitem2
  • tst_qquicklayouts
  • tst_qquicklistview
  • tst_qquickmousearea
  • tst_qquickpositioners
  • ...
2610
2409-
2410 // Immediates:-
2411 //-
2412 // An immedaite should be appended where appropriate after an op has been emitted.-
2413 // The writes are unchecked since the opcode formatters above will have ensured space.-
2414-
2415 void immediate8(int imm)-
2416 {-
2417 m_buffer.putByteUnchecked(imm);-
2418 }
executed 4534654 times by 153 tests: end of block
Executed by:
  • tst_bindingdependencyapi
  • tst_drawingmodes
  • tst_ecmascripttests
  • tst_examples
  • tst_flickableinterop
  • tst_multipointtoucharea_interop
  • tst_parserstress
  • tst_qjsengine
  • tst_qjsonbinding
  • tst_qjsvalue
  • tst_qjsvalueiterator
  • tst_qmlcachegen
  • tst_qmldiskcache
  • tst_qqmlapplicationengine
  • tst_qqmlbinding
  • tst_qqmlcomponent
  • tst_qqmlconnections
  • tst_qqmlconsole
  • tst_qqmlcontext
  • tst_qqmldebugclient
  • tst_qqmldebugjs
  • tst_qqmldebuglocal
  • tst_qqmldebugservice
  • tst_qqmlecmascript
  • tst_qqmlenginecleanup
  • ...
4534654
2419-
2420 void immediate16(int imm)-
2421 {-
2422 m_buffer.putShortUnchecked(imm);-
2423 }
never executed: end of block
0
2424-
2425 void immediate32(int imm)-
2426 {-
2427 m_buffer.putIntUnchecked(imm);-
2428 }
executed 2875968 times by 153 tests: end of block
Executed by:
  • tst_bindingdependencyapi
  • tst_drawingmodes
  • tst_ecmascripttests
  • tst_examples
  • tst_flickableinterop
  • tst_multipointtoucharea_interop
  • tst_parserstress
  • tst_qjsengine
  • tst_qjsonbinding
  • tst_qjsvalue
  • tst_qjsvalueiterator
  • tst_qmlcachegen
  • tst_qmldiskcache
  • tst_qqmlapplicationengine
  • tst_qqmlbinding
  • tst_qqmlcomponent
  • tst_qqmlconnections
  • tst_qqmlconsole
  • tst_qqmlcontext
  • tst_qqmldebugclient
  • tst_qqmldebugjs
  • tst_qqmldebuglocal
  • tst_qqmldebugservice
  • tst_qqmlecmascript
  • tst_qqmlenginecleanup
  • ...
2875968
2429-
2430 void immediate64(int64_t imm)-
2431 {-
2432 m_buffer.putInt64Unchecked(imm);-
2433 }
executed 2429581 times by 153 tests: end of block
Executed by:
  • tst_bindingdependencyapi
  • tst_drawingmodes
  • tst_ecmascripttests
  • tst_examples
  • tst_flickableinterop
  • tst_multipointtoucharea_interop
  • tst_parserstress
  • tst_qjsengine
  • tst_qjsonbinding
  • tst_qjsvalue
  • tst_qjsvalueiterator
  • tst_qmlcachegen
  • tst_qmldiskcache
  • tst_qqmlapplicationengine
  • tst_qqmlbinding
  • tst_qqmlcomponent
  • tst_qqmlconnections
  • tst_qqmlconsole
  • tst_qqmlcontext
  • tst_qqmldebugclient
  • tst_qqmldebugjs
  • tst_qqmldebuglocal
  • tst_qqmldebugservice
  • tst_qqmlecmascript
  • tst_qqmlenginecleanup
  • ...
2429581
2434-
2435 AssemblerLabel immediateRel32()-
2436 {-
2437 m_buffer.putIntUnchecked(0);-
2438 return label();
executed 7522664 times by 153 tests: return label();
Executed by:
  • tst_bindingdependencyapi
  • tst_drawingmodes
  • tst_ecmascripttests
  • tst_examples
  • tst_flickableinterop
  • tst_multipointtoucharea_interop
  • tst_parserstress
  • tst_qjsengine
  • tst_qjsonbinding
  • tst_qjsvalue
  • tst_qjsvalueiterator
  • tst_qmlcachegen
  • tst_qmldiskcache
  • tst_qqmlapplicationengine
  • tst_qqmlbinding
  • tst_qqmlcomponent
  • tst_qqmlconnections
  • tst_qqmlconsole
  • tst_qqmlcontext
  • tst_qqmldebugclient
  • tst_qqmldebugjs
  • tst_qqmldebuglocal
  • tst_qqmldebugservice
  • tst_qqmlecmascript
  • tst_qqmlenginecleanup
  • ...
7522664
2439 }-
2440-
2441 // Administrative methods:-
2442-
2443 size_t codeSize() const { return m_buffer.codeSize(); }
executed 1164435 times by 153 tests: return m_buffer.codeSize();
Executed by:
  • tst_bindingdependencyapi
  • tst_drawingmodes
  • tst_ecmascripttests
  • tst_examples
  • tst_flickableinterop
  • tst_multipointtoucharea_interop
  • tst_parserstress
  • tst_qjsengine
  • tst_qjsonbinding
  • tst_qjsvalue
  • tst_qjsvalueiterator
  • tst_qmlcachegen
  • tst_qmldiskcache
  • tst_qqmlapplicationengine
  • tst_qqmlbinding
  • tst_qqmlcomponent
  • tst_qqmlconnections
  • tst_qqmlconsole
  • tst_qqmlcontext
  • tst_qqmldebugclient
  • tst_qqmldebugjs
  • tst_qqmldebuglocal
  • tst_qqmldebugservice
  • tst_qqmlecmascript
  • tst_qqmlenginecleanup
  • ...
1164435
2444 AssemblerLabel label() const { return m_buffer.label(); }
executed 15128037 times by 153 tests: return m_buffer.label();
Executed by:
  • tst_bindingdependencyapi
  • tst_drawingmodes
  • tst_ecmascripttests
  • tst_examples
  • tst_flickableinterop
  • tst_multipointtoucharea_interop
  • tst_parserstress
  • tst_qjsengine
  • tst_qjsonbinding
  • tst_qjsvalue
  • tst_qjsvalueiterator
  • tst_qmlcachegen
  • tst_qmldiskcache
  • tst_qqmlapplicationengine
  • tst_qqmlbinding
  • tst_qqmlcomponent
  • tst_qqmlconnections
  • tst_qqmlconsole
  • tst_qqmlcontext
  • tst_qqmldebugclient
  • tst_qqmldebugjs
  • tst_qqmldebuglocal
  • tst_qqmldebugservice
  • tst_qqmlecmascript
  • tst_qqmlenginecleanup
  • ...
15128037
2445 bool isAligned(int alignment) const { return m_buffer.isAligned(alignment); }
never executed: return m_buffer.isAligned(alignment);
0
2446 void* data() const { return m_buffer.data(); }
executed 7521853 times by 153 tests: return m_buffer.data();
Executed by:
  • tst_bindingdependencyapi
  • tst_drawingmodes
  • tst_ecmascripttests
  • tst_examples
  • tst_flickableinterop
  • tst_multipointtoucharea_interop
  • tst_parserstress
  • tst_qjsengine
  • tst_qjsonbinding
  • tst_qjsvalue
  • tst_qjsvalueiterator
  • tst_qmlcachegen
  • tst_qmldiskcache
  • tst_qqmlapplicationengine
  • tst_qqmlbinding
  • tst_qqmlcomponent
  • tst_qqmlconnections
  • tst_qqmlconsole
  • tst_qqmlcontext
  • tst_qqmldebugclient
  • tst_qqmldebugjs
  • tst_qqmldebuglocal
  • tst_qqmldebugservice
  • tst_qqmlecmascript
  • tst_qqmlenginecleanup
  • ...
7521853
2447-
2448 PassRefPtr<ExecutableMemoryHandle> executableCopy(JSGlobalData& globalData, void* ownerUID, JITCompilationEffort effort)-
2449 {-
2450 return m_buffer.executableCopy(globalData, ownerUID, effort);
executed 1162049 times by 153 tests: return m_buffer.executableCopy(globalData, ownerUID, effort);
Executed by:
  • tst_bindingdependencyapi
  • tst_drawingmodes
  • tst_ecmascripttests
  • tst_examples
  • tst_flickableinterop
  • tst_multipointtoucharea_interop
  • tst_parserstress
  • tst_qjsengine
  • tst_qjsonbinding
  • tst_qjsvalue
  • tst_qjsvalueiterator
  • tst_qmlcachegen
  • tst_qmldiskcache
  • tst_qqmlapplicationengine
  • tst_qqmlbinding
  • tst_qqmlcomponent
  • tst_qqmlconnections
  • tst_qqmlconsole
  • tst_qqmlcontext
  • tst_qqmldebugclient
  • tst_qqmldebugjs
  • tst_qqmldebuglocal
  • tst_qqmldebugservice
  • tst_qqmlecmascript
  • tst_qqmlenginecleanup
  • ...
1162049
2451 }-
2452-
2453 unsigned debugOffset() { return m_buffer.debugOffset(); }
never executed: return m_buffer.debugOffset();
0
2454-
2455 private:-
2456-
2457 // Internals; ModRm and REX formatters.-
2458-
2459 static const RegisterID noBase = X86Registers::ebp;-
2460 static const RegisterID hasSib = X86Registers::esp;-
2461 static const RegisterID noIndex = X86Registers::esp;-
2462#if CPU(X86_64)-
2463 static const RegisterID noBase2 = X86Registers::r13;-
2464 static const RegisterID hasSib2 = X86Registers::r12;-
2465-
2466 // Registers r8 & above require a REX prefixe.-
2467 inline bool regRequiresRex(int reg)-
2468 {-
2469 return (reg >= X86Registers::r8);
executed 89638275 times by 153 tests: return (reg >= X86Registers::r8);
Executed by:
  • tst_bindingdependencyapi
  • tst_drawingmodes
  • tst_ecmascripttests
  • tst_examples
  • tst_flickableinterop
  • tst_multipointtoucharea_interop
  • tst_parserstress
  • tst_qjsengine
  • tst_qjsonbinding
  • tst_qjsvalue
  • tst_qjsvalueiterator
  • tst_qmlcachegen
  • tst_qmldiskcache
  • tst_qqmlapplicationengine
  • tst_qqmlbinding
  • tst_qqmlcomponent
  • tst_qqmlconnections
  • tst_qqmlconsole
  • tst_qqmlcontext
  • tst_qqmldebugclient
  • tst_qqmldebugjs
  • tst_qqmldebuglocal
  • tst_qqmldebugservice
  • tst_qqmlecmascript
  • tst_qqmlenginecleanup
  • ...
89638275
2470 }-
2471-
2472 // Byte operand register spl & above require a REX prefix (to prevent the 'H' registers be accessed).-
2473 inline bool byteRegRequiresRex(int reg)-
2474 {-
2475 return (reg >= X86Registers::esp);
executed 7830 times by 34 tests: return (reg >= X86Registers::esp);
Executed by:
  • tst_examples
  • tst_flickableinterop
  • tst_qjsengine
  • tst_qjsvalue
  • tst_qqmlbinding
  • tst_qqmlecmascript
  • tst_qqmlinstantiator
  • tst_qqmlitemmodels
  • tst_qqmllistmodelworkerscript
  • tst_qqmllocale
  • tst_qqmlprofilerservice
  • tst_qqmlqt
  • tst_qqmlvaluetypeproviders
  • tst_qqmlxmlhttprequest
  • tst_qquickanimatedimage
  • tst_qquickanimationcontroller
  • tst_qquickbehaviors
  • tst_qquickcustomaffector
  • tst_qquickdraghandler
  • tst_qquickgridview
  • tst_qquickitem2
  • tst_qquicklayouts
  • tst_qquicklistview
  • tst_qquickmousearea
  • tst_qquickpositioners
  • ...
7830
2476 }-
2477-
2478 // Format a REX prefix byte.-
2479 inline void emitRex(bool w, int r, int x, int b)-
2480 {-
2481 ASSERT(r >= 0);-
2482 ASSERT(x >= 0);-
2483 ASSERT(b >= 0);-
2484 m_buffer.putByteUnchecked(PRE_REX | ((int)w << 3) | ((r>>3)<<2) | ((x>>3)<<1) | (b>>3));-
2485 }
executed 6592078 times by 153 tests: end of block
Executed by:
  • tst_bindingdependencyapi
  • tst_drawingmodes
  • tst_ecmascripttests
  • tst_examples
  • tst_flickableinterop
  • tst_multipointtoucharea_interop
  • tst_parserstress
  • tst_qjsengine
  • tst_qjsonbinding
  • tst_qjsvalue
  • tst_qjsvalueiterator
  • tst_qmlcachegen
  • tst_qmldiskcache
  • tst_qqmlapplicationengine
  • tst_qqmlbinding
  • tst_qqmlcomponent
  • tst_qqmlconnections
  • tst_qqmlconsole
  • tst_qqmlcontext
  • tst_qqmldebugclient
  • tst_qqmldebugjs
  • tst_qqmldebuglocal
  • tst_qqmldebugservice
  • tst_qqmlecmascript
  • tst_qqmlenginecleanup
  • ...
6592078
2486-
2487 // Used to plant a REX byte with REX.w set (for 64-bit operations).-
2488 inline void emitRexW(int r, int x, int b)-
2489 {-
2490 emitRex(true, r, x, b);-
2491 }
executed 6280367 times by 153 tests: end of block
Executed by:
  • tst_bindingdependencyapi
  • tst_drawingmodes
  • tst_ecmascripttests
  • tst_examples
  • tst_flickableinterop
  • tst_multipointtoucharea_interop
  • tst_parserstress
  • tst_qjsengine
  • tst_qjsonbinding
  • tst_qjsvalue
  • tst_qjsvalueiterator
  • tst_qmlcachegen
  • tst_qmldiskcache
  • tst_qqmlapplicationengine
  • tst_qqmlbinding
  • tst_qqmlcomponent
  • tst_qqmlconnections
  • tst_qqmlconsole
  • tst_qqmlcontext
  • tst_qqmldebugclient
  • tst_qqmldebugjs
  • tst_qqmldebuglocal
  • tst_qqmldebugservice
  • tst_qqmlecmascript
  • tst_qqmlenginecleanup
  • ...
6280367
2492-
2493 // Used for operations with byte operands - use byteRegRequiresRex() to check register operands,-
2494 // regRequiresRex() to check other registers (i.e. address base & index).-
2495 inline void emitRexIf(bool condition, int r, int x, int b)-
2496 {-
2497 if (condition) emitRex(false, r, x, b);
executed 312232 times by 65 tests: emitRex(false, r, x, b);
Executed by:
  • tst_ecmascripttests
  • tst_examples
  • tst_flickableinterop
  • tst_multipointtoucharea_interop
  • tst_qjsengine
  • tst_qjsvalue
  • tst_qqmlbinding
  • tst_qqmlcomponent
  • tst_qqmlcontext
  • tst_qqmlecmascript
  • tst_qqmlenginedebugservice
  • tst_qqmlinstantiator
  • tst_qqmlitemmodels
  • tst_qqmllistmodel
  • tst_qqmllistmodelworkerscript
  • tst_qqmllocale
  • tst_qqmlnotifier
  • tst_qqmlprofilerservice
  • tst_qqmlproperty
  • tst_qqmlqt
  • tst_qqmlvaluetypeproviders
  • tst_qqmlvaluetypes
  • tst_qqmlxmlhttprequest
  • tst_qquickaccessible
  • tst_qquickanimatedimage
  • ...
conditionDescription
TRUEevaluated 312232 times by 65 tests
Evaluated by:
  • tst_ecmascripttests
  • tst_examples
  • tst_flickableinterop
  • tst_multipointtoucharea_interop
  • tst_qjsengine
  • tst_qjsvalue
  • tst_qqmlbinding
  • tst_qqmlcomponent
  • tst_qqmlcontext
  • tst_qqmlecmascript
  • tst_qqmlenginedebugservice
  • tst_qqmlinstantiator
  • tst_qqmlitemmodels
  • tst_qqmllistmodel
  • tst_qqmllistmodelworkerscript
  • tst_qqmllocale
  • tst_qqmlnotifier
  • tst_qqmlprofilerservice
  • tst_qqmlproperty
  • tst_qqmlqt
  • tst_qqmlvaluetypeproviders
  • tst_qqmlvaluetypes
  • tst_qqmlxmlhttprequest
  • tst_qquickaccessible
  • tst_qquickanimatedimage
  • ...
FALSEevaluated 29590430 times by 153 tests
Evaluated by:
  • tst_bindingdependencyapi
  • tst_drawingmodes
  • tst_ecmascripttests
  • tst_examples
  • tst_flickableinterop
  • tst_multipointtoucharea_interop
  • tst_parserstress
  • tst_qjsengine
  • tst_qjsonbinding
  • tst_qjsvalue
  • tst_qjsvalueiterator
  • tst_qmlcachegen
  • tst_qmldiskcache
  • tst_qqmlapplicationengine
  • tst_qqmlbinding
  • tst_qqmlcomponent
  • tst_qqmlconnections
  • tst_qqmlconsole
  • tst_qqmlcontext
  • tst_qqmldebugclient
  • tst_qqmldebugjs
  • tst_qqmldebuglocal
  • tst_qqmldebugservice
  • tst_qqmlecmascript
  • tst_qqmlenginecleanup
  • ...
312232-29590430
2498 }
executed 29902564 times by 153 tests: end of block
Executed by:
  • tst_bindingdependencyapi
  • tst_drawingmodes
  • tst_ecmascripttests
  • tst_examples
  • tst_flickableinterop
  • tst_multipointtoucharea_interop
  • tst_parserstress
  • tst_qjsengine
  • tst_qjsonbinding
  • tst_qjsvalue
  • tst_qjsvalueiterator
  • tst_qmlcachegen
  • tst_qmldiskcache
  • tst_qqmlapplicationengine
  • tst_qqmlbinding
  • tst_qqmlcomponent
  • tst_qqmlconnections
  • tst_qqmlconsole
  • tst_qqmlcontext
  • tst_qqmldebugclient
  • tst_qqmldebugjs
  • tst_qqmldebuglocal
  • tst_qqmldebugservice
  • tst_qqmlecmascript
  • tst_qqmlenginecleanup
  • ...
29902564
2499-
2500 // Used for word sized operations, will plant a REX prefix if necessary (if any register is r8 or above).-
2501 inline void emitRexIfNeeded(int r, int x, int b)-
2502 {-
2503 emitRexIf(regRequiresRex(r) || regRequiresRex(x) || regRequiresRex(b), r, x, b);-
2504 }
executed 29902453 times by 153 tests: end of block
Executed by:
  • tst_bindingdependencyapi
  • tst_drawingmodes
  • tst_ecmascripttests
  • tst_examples
  • tst_flickableinterop
  • tst_multipointtoucharea_interop
  • tst_parserstress
  • tst_qjsengine
  • tst_qjsonbinding
  • tst_qjsvalue
  • tst_qjsvalueiterator
  • tst_qmlcachegen
  • tst_qmldiskcache
  • tst_qqmlapplicationengine
  • tst_qqmlbinding
  • tst_qqmlcomponent
  • tst_qqmlconnections
  • tst_qqmlconsole
  • tst_qqmlcontext
  • tst_qqmldebugclient
  • tst_qqmldebugjs
  • tst_qqmldebuglocal
  • tst_qqmldebugservice
  • tst_qqmlecmascript
  • tst_qqmlenginecleanup
  • ...
29902453
2505#else-
2506 // No REX prefix bytes on 32-bit x86.-
2507 inline bool regRequiresRex(int) { return false; }-
2508 inline bool byteRegRequiresRex(int) { return false; }-
2509 inline void emitRexIf(bool, int, int, int) {}-
2510 inline void emitRexIfNeeded(int, int, int) {}-
2511#endif-
2512-
2513 void putModRm(ModRmMode mode, int reg, RegisterID rm)-
2514 {-
2515 m_buffer.putByteUnchecked((mode << 6) | ((reg & 7) << 3) | (rm & 7));-
2516 }
executed 24382634 times by 153 tests: end of block
Executed by:
  • tst_bindingdependencyapi
  • tst_drawingmodes
  • tst_ecmascripttests
  • tst_examples
  • tst_flickableinterop
  • tst_multipointtoucharea_interop
  • tst_parserstress
  • tst_qjsengine
  • tst_qjsonbinding
  • tst_qjsvalue
  • tst_qjsvalueiterator
  • tst_qmlcachegen
  • tst_qmldiskcache
  • tst_qqmlapplicationengine
  • tst_qqmlbinding
  • tst_qqmlcomponent
  • tst_qqmlconnections
  • tst_qqmlconsole
  • tst_qqmlcontext
  • tst_qqmldebugclient
  • tst_qqmldebugjs
  • tst_qqmldebuglocal
  • tst_qqmldebugservice
  • tst_qqmlecmascript
  • tst_qqmlenginecleanup
  • ...
24382634
2517-
2518 void putModRmSib(ModRmMode mode, int reg, RegisterID base, RegisterID index, int scale)-
2519 {-
2520 ASSERT(mode != ModRmRegister);-
2521-
2522 putModRm(mode, reg, hasSib);-
2523 m_buffer.putByteUnchecked((scale << 6) | ((index & 7) << 3) | (base & 7));-
2524 }
executed 1743401 times by 65 tests: end of block
Executed by:
  • tst_ecmascripttests
  • tst_examples
  • tst_flickableinterop
  • tst_multipointtoucharea_interop
  • tst_qjsengine
  • tst_qjsvalue
  • tst_qqmlbinding
  • tst_qqmlcomponent
  • tst_qqmlcontext
  • tst_qqmlecmascript
  • tst_qqmlenginedebugservice
  • tst_qqmlinstantiator
  • tst_qqmlitemmodels
  • tst_qqmllistmodel
  • tst_qqmllistmodelworkerscript
  • tst_qqmllocale
  • tst_qqmlnotifier
  • tst_qqmlprofilerservice
  • tst_qqmlproperty
  • tst_qqmlqt
  • tst_qqmlvaluetypeproviders
  • tst_qqmlvaluetypes
  • tst_qqmlxmlhttprequest
  • tst_qquickaccessible
  • tst_qquickanimatedimage
  • ...
1743401
2525-
2526 void registerModRM(int reg, RegisterID rm)-
2527 {-
2528 putModRm(ModRmRegister, reg, rm);-
2529 }
executed 19044002 times by 153 tests: end of block
Executed by:
  • tst_bindingdependencyapi
  • tst_drawingmodes
  • tst_ecmascripttests
  • tst_examples
  • tst_flickableinterop
  • tst_multipointtoucharea_interop
  • tst_parserstress
  • tst_qjsengine
  • tst_qjsonbinding
  • tst_qjsvalue
  • tst_qjsvalueiterator
  • tst_qmlcachegen
  • tst_qmldiskcache
  • tst_qqmlapplicationengine
  • tst_qqmlbinding
  • tst_qqmlcomponent
  • tst_qqmlconnections
  • tst_qqmlconsole
  • tst_qqmlcontext
  • tst_qqmldebugclient
  • tst_qqmldebugjs
  • tst_qqmldebuglocal
  • tst_qqmldebugservice
  • tst_qqmlecmascript
  • tst_qqmlenginecleanup
  • ...
19044002
2530-
2531 void memoryModRM(int reg, RegisterID base, int offset)-
2532 {-
2533 // A base of esp or r12 would be interpreted as a sib, so force a sib with no index & put the base in there.-
2534#if CPU(X86_64)-
2535 if ((base == hasSib) || (base == hasSib2)) {
(base == hasSib)Description
TRUEevaluated 5637 times by 8 tests
Evaluated by:
  • tst_ecmascripttests
  • tst_examples
  • tst_qjsengine
  • tst_qjsvalue
  • tst_qqmlxmlhttprequest
  • tst_qquicklistview
  • tst_qquicktextinput
  • tst_qquickworkerscript
FALSEevaluated 3748599 times by 153 tests
Evaluated by:
  • tst_bindingdependencyapi
  • tst_drawingmodes
  • tst_ecmascripttests
  • tst_examples
  • tst_flickableinterop
  • tst_multipointtoucharea_interop
  • tst_parserstress
  • tst_qjsengine
  • tst_qjsonbinding
  • tst_qjsvalue
  • tst_qjsvalueiterator
  • tst_qmlcachegen
  • tst_qmldiskcache
  • tst_qqmlapplicationengine
  • tst_qqmlbinding
  • tst_qqmlcomponent
  • tst_qqmlconnections
  • tst_qqmlconsole
  • tst_qqmlcontext
  • tst_qqmldebugclient
  • tst_qqmldebugjs
  • tst_qqmldebuglocal
  • tst_qqmldebugservice
  • tst_qqmlecmascript
  • tst_qqmlenginecleanup
  • ...
(base == hasSib2)Description
TRUEevaluated 147832 times by 64 tests
Evaluated by:
  • tst_examples
  • tst_flickableinterop
  • tst_multipointtoucharea_interop
  • tst_qjsengine
  • tst_qjsvalue
  • tst_qqmlbinding
  • tst_qqmlcomponent
  • tst_qqmlcontext
  • tst_qqmlecmascript
  • tst_qqmlenginedebugservice
  • tst_qqmlinstantiator
  • tst_qqmlitemmodels
  • tst_qqmllistmodel
  • tst_qqmllistmodelworkerscript
  • tst_qqmllocale
  • tst_qqmlnotifier
  • tst_qqmlprofilerservice
  • tst_qqmlproperty
  • tst_qqmlqt
  • tst_qqmlvaluetypeproviders
  • tst_qqmlvaluetypes
  • tst_qqmlxmlhttprequest
  • tst_qquickaccessible
  • tst_qquickanimatedimage
  • tst_qquickanimationcontroller
  • ...
FALSEevaluated 3602245 times by 153 tests
Evaluated by:
  • tst_bindingdependencyapi
  • tst_drawingmodes
  • tst_ecmascripttests
  • tst_examples
  • tst_flickableinterop
  • tst_multipointtoucharea_interop
  • tst_parserstress
  • tst_qjsengine
  • tst_qjsonbinding
  • tst_qjsvalue
  • tst_qjsvalueiterator
  • tst_qmlcachegen
  • tst_qmldiskcache
  • tst_qqmlapplicationengine
  • tst_qqmlbinding
  • tst_qqmlcomponent
  • tst_qqmlconnections
  • tst_qqmlconsole
  • tst_qqmlcontext
  • tst_qqmldebugclient
  • tst_qqmldebugjs
  • tst_qqmldebuglocal
  • tst_qqmldebugservice
  • tst_qqmlecmascript
  • tst_qqmlenginecleanup
  • ...
5637-3748599
2536#else-
2537 if (base == hasSib) {-
2538#endif-
2539 if (!offset) // No need to check if the base is noBase, since we know it is hasSib!
!offsetDescription
TRUEevaluated 3111 times by 29 tests
Evaluated by:
  • tst_ecmascripttests
  • tst_examples
  • tst_qjsengine
  • tst_qjsvalue
  • tst_qqmlcomponent
  • tst_qqmlcontext
  • tst_qqmlecmascript
  • tst_qqmlitemmodels
  • tst_qqmllistmodelworkerscript
  • tst_qqmllocale
  • tst_qqmlprofilerservice
  • tst_qqmlqt
  • tst_qqmlxmlhttprequest
  • tst_qquickanimationcontroller
  • tst_qquickdroparea
  • tst_qquickflickable
  • tst_qquickgridview
  • tst_qquicklayouts
  • tst_qquicklistview
  • tst_qquickpositioners
  • tst_qquickrepeater
  • tst_qquicksmoothedanimation
  • tst_qquicktaphandler
  • tst_qquicktextinput
  • tst_qquickvisualdatamodel
  • ...
FALSEevaluated 150359 times by 65 tests
Evaluated by:
  • tst_ecmascripttests
  • tst_examples
  • tst_flickableinterop
  • tst_multipointtoucharea_interop
  • tst_qjsengine
  • tst_qjsvalue
  • tst_qqmlbinding
  • tst_qqmlcomponent
  • tst_qqmlcontext
  • tst_qqmlecmascript
  • tst_qqmlenginedebugservice
  • tst_qqmlinstantiator
  • tst_qqmlitemmodels
  • tst_qqmllistmodel
  • tst_qqmllistmodelworkerscript
  • tst_qqmllocale
  • tst_qqmlnotifier
  • tst_qqmlprofilerservice
  • tst_qqmlproperty
  • tst_qqmlqt
  • tst_qqmlvaluetypeproviders
  • tst_qqmlvaluetypes
  • tst_qqmlxmlhttprequest
  • tst_qquickaccessible
  • tst_qquickanimatedimage
  • ...
3111-150359
2540 putModRmSib(ModRmMemoryNoDisp, reg, base, noIndex, 0);
executed 3111 times by 29 tests: putModRmSib(ModRmMemoryNoDisp, reg, base, noIndex, 0);
Executed by:
  • tst_ecmascripttests
  • tst_examples
  • tst_qjsengine
  • tst_qjsvalue
  • tst_qqmlcomponent
  • tst_qqmlcontext
  • tst_qqmlecmascript
  • tst_qqmlitemmodels
  • tst_qqmllistmodelworkerscript
  • tst_qqmllocale
  • tst_qqmlprofilerservice
  • tst_qqmlqt
  • tst_qqmlxmlhttprequest
  • tst_qquickanimationcontroller
  • tst_qquickdroparea
  • tst_qquickflickable
  • tst_qquickgridview
  • tst_qquicklayouts
  • tst_qquicklistview
  • tst_qquickpositioners
  • tst_qquickrepeater
  • tst_qquicksmoothedanimation
  • tst_qquicktaphandler
  • tst_qquicktextinput
  • tst_qquickvisualdatamodel
  • ...
3111
2541 else if (CAN_SIGN_EXTEND_8_32(offset)) {
CAN_SIGN_EXTEND_8_32(offset)Description
TRUEevaluated 143428 times by 65 tests
Evaluated by:
  • tst_ecmascripttests
  • tst_examples
  • tst_flickableinterop
  • tst_multipointtoucharea_interop
  • tst_qjsengine
  • tst_qjsvalue
  • tst_qqmlbinding
  • tst_qqmlcomponent
  • tst_qqmlcontext
  • tst_qqmlecmascript
  • tst_qqmlenginedebugservice
  • tst_qqmlinstantiator
  • tst_qqmlitemmodels
  • tst_qqmllistmodel
  • tst_qqmllistmodelworkerscript
  • tst_qqmllocale
  • tst_qqmlnotifier
  • tst_qqmlprofilerservice
  • tst_qqmlproperty
  • tst_qqmlqt
  • tst_qqmlvaluetypeproviders
  • tst_qqmlvaluetypes
  • tst_qqmlxmlhttprequest
  • tst_qquickaccessible
  • tst_qquickanimatedimage
  • ...
FALSEevaluated 6930 times by 15 tests
Evaluated by:
  • tst_examples
  • tst_qqmlitemmodels
  • tst_qqmllocale
  • tst_qqmlqt
  • tst_qqmlxmlhttprequest
  • tst_qquickaccessible
  • tst_qquickanimationcontroller
  • tst_qquickflickable
  • tst_qquickgridview
  • tst_qquicklayouts
  • tst_qquicklistview
  • tst_qquickpositioners
  • tst_qquickvisualdatamodel
  • tst_signalspy
  • tst_testfiltering
6930-143428
2542 putModRmSib(ModRmMemoryDisp8, reg, base, noIndex, 0);-
2543 m_buffer.putByteUnchecked(offset);-
2544 } else {
executed 143425 times by 65 tests: end of block
Executed by:
  • tst_ecmascripttests
  • tst_examples
  • tst_flickableinterop
  • tst_multipointtoucharea_interop
  • tst_qjsengine
  • tst_qjsvalue
  • tst_qqmlbinding
  • tst_qqmlcomponent
  • tst_qqmlcontext
  • tst_qqmlecmascript
  • tst_qqmlenginedebugservice
  • tst_qqmlinstantiator
  • tst_qqmlitemmodels
  • tst_qqmllistmodel
  • tst_qqmllistmodelworkerscript
  • tst_qqmllocale
  • tst_qqmlnotifier
  • tst_qqmlprofilerservice
  • tst_qqmlproperty
  • tst_qqmlqt
  • tst_qqmlvaluetypeproviders
  • tst_qqmlvaluetypes
  • tst_qqmlxmlhttprequest
  • tst_qquickaccessible
  • tst_qquickanimatedimage
  • ...
143425
2545 putModRmSib(ModRmMemoryDisp32, reg, base, noIndex, 0);-
2546 m_buffer.putIntUnchecked(offset);-
2547 }
executed 6930 times by 15 tests: end of block
Executed by:
  • tst_examples
  • tst_qqmlitemmodels
  • tst_qqmllocale
  • tst_qqmlqt
  • tst_qqmlxmlhttprequest
  • tst_qquickaccessible
  • tst_qquickanimationcontroller
  • tst_qquickflickable
  • tst_qquickgridview
  • tst_qquicklayouts
  • tst_qquicklistview
  • tst_qquickpositioners
  • tst_qquickvisualdatamodel
  • tst_signalspy
  • tst_testfiltering
6930
2548 } else {-
2549#if CPU(X86_64)-
2550 if (!offset && (base != noBase) && (base != noBase2))
!offsetDescription
TRUEevaluated 2306190 times by 153 tests
Evaluated by:
  • tst_bindingdependencyapi
  • tst_drawingmodes
  • tst_ecmascripttests
  • tst_examples
  • tst_flickableinterop
  • tst_multipointtoucharea_interop
  • tst_parserstress
  • tst_qjsengine
  • tst_qjsonbinding
  • tst_qjsvalue
  • tst_qjsvalueiterator
  • tst_qmlcachegen
  • tst_qmldiskcache
  • tst_qqmlapplicationengine
  • tst_qqmlbinding
  • tst_qqmlcomponent
  • tst_qqmlconnections
  • tst_qqmlconsole
  • tst_qqmlcontext
  • tst_qqmldebugclient
  • tst_qqmldebugjs
  • tst_qqmldebuglocal
  • tst_qqmldebugservice
  • tst_qqmlecmascript
  • tst_qqmlenginecleanup
  • ...
FALSEevaluated 1295390 times by 153 tests
Evaluated by:
  • tst_bindingdependencyapi
  • tst_drawingmodes
  • tst_ecmascripttests
  • tst_examples
  • tst_flickableinterop
  • tst_multipointtoucharea_interop
  • tst_parserstress
  • tst_qjsengine
  • tst_qjsonbinding
  • tst_qjsvalue
  • tst_qjsvalueiterator
  • tst_qmlcachegen
  • tst_qmldiskcache
  • tst_qqmlapplicationengine
  • tst_qqmlbinding
  • tst_qqmlcomponent
  • tst_qqmlconnections
  • tst_qqmlconsole
  • tst_qqmlcontext
  • tst_qqmldebugclient
  • tst_qqmldebugjs
  • tst_qqmldebuglocal
  • tst_qqmldebugservice
  • tst_qqmlecmascript
  • tst_qqmlenginecleanup
  • ...
(base != noBase)Description
TRUEevaluated 2306007 times by 153 tests
Evaluated by:
  • tst_bindingdependencyapi
  • tst_drawingmodes
  • tst_ecmascripttests
  • tst_examples
  • tst_flickableinterop
  • tst_multipointtoucharea_interop
  • tst_parserstress
  • tst_qjsengine
  • tst_qjsonbinding
  • tst_qjsvalue
  • tst_qjsvalueiterator
  • tst_qmlcachegen
  • tst_qmldiskcache
  • tst_qqmlapplicationengine
  • tst_qqmlbinding
  • tst_qqmlcomponent
  • tst_qqmlconnections
  • tst_qqmlconsole
  • tst_qqmlcontext
  • tst_qqmldebugclient
  • tst_qqmldebugjs
  • tst_qqmldebuglocal
  • tst_qqmldebugservice
  • tst_qqmlecmascript
  • tst_qqmlenginecleanup
  • ...
FALSEnever evaluated
(base != noBase2)Description
TRUEevaluated 2306886 times by 153 tests
Evaluated by:
  • tst_bindingdependencyapi
  • tst_drawingmodes
  • tst_ecmascripttests
  • tst_examples
  • tst_flickableinterop
  • tst_multipointtoucharea_interop
  • tst_parserstress
  • tst_qjsengine
  • tst_qjsonbinding
  • tst_qjsvalue
  • tst_qjsvalueiterator
  • tst_qmlcachegen
  • tst_qmldiskcache
  • tst_qqmlapplicationengine
  • tst_qqmlbinding
  • tst_qqmlcomponent
  • tst_qqmlconnections
  • tst_qqmlconsole
  • tst_qqmlcontext
  • tst_qqmldebugclient
  • tst_qqmldebugjs
  • tst_qqmldebuglocal
  • tst_qqmldebugservice
  • tst_qqmlecmascript
  • tst_qqmlenginecleanup
  • ...
FALSEnever evaluated
0-2306886
2551#else-
2552 if (!offset && (base != noBase))-
2553#endif-
2554 putModRm(ModRmMemoryNoDisp, reg, base);
executed 2305375 times by 153 tests: putModRm(ModRmMemoryNoDisp, reg, base);
Executed by:
  • tst_bindingdependencyapi
  • tst_drawingmodes
  • tst_ecmascripttests
  • tst_examples
  • tst_flickableinterop
  • tst_multipointtoucharea_interop
  • tst_parserstress
  • tst_qjsengine
  • tst_qjsonbinding
  • tst_qjsvalue
  • tst_qjsvalueiterator
  • tst_qmlcachegen
  • tst_qmldiskcache
  • tst_qqmlapplicationengine
  • tst_qqmlbinding
  • tst_qqmlcomponent
  • tst_qqmlconnections
  • tst_qqmlconsole
  • tst_qqmlcontext
  • tst_qqmldebugclient
  • tst_qqmldebugjs
  • tst_qqmldebuglocal
  • tst_qqmldebugservice
  • tst_qqmlecmascript
  • tst_qqmlenginecleanup
  • ...
2305375
2555 else if (CAN_SIGN_EXTEND_8_32(offset)) {
CAN_SIGN_EXTEND_8_32(offset)Description
TRUEevaluated 1288416 times by 153 tests
Evaluated by:
  • tst_bindingdependencyapi
  • tst_drawingmodes
  • tst_ecmascripttests
  • tst_examples
  • tst_flickableinterop
  • tst_multipointtoucharea_interop
  • tst_parserstress
  • tst_qjsengine
  • tst_qjsonbinding
  • tst_qjsvalue
  • tst_qjsvalueiterator
  • tst_qmlcachegen
  • tst_qmldiskcache
  • tst_qqmlapplicationengine
  • tst_qqmlbinding
  • tst_qqmlcomponent
  • tst_qqmlconnections
  • tst_qqmlconsole
  • tst_qqmlcontext
  • tst_qqmldebugclient
  • tst_qqmldebugjs
  • tst_qqmldebuglocal
  • tst_qqmldebugservice
  • tst_qqmlecmascript
  • tst_qqmlenginecleanup
  • ...
FALSEevaluated 5874 times by 25 tests
Evaluated by:
  • tst_ecmascripttests
  • tst_examples
  • tst_flickableinterop
  • tst_multipointtoucharea_interop
  • tst_qqmllistmodel
  • tst_qqmlqt
  • tst_qqmlxmlhttprequest
  • tst_qquickaccessible
  • tst_qquickanimationcontroller
  • tst_qquickanimations
  • tst_qquickdraghandler
  • tst_qquickgridview
  • tst_qquickitem2
  • tst_qquicklayouts
  • tst_qquicklistview
  • tst_qquickmousearea
  • tst_qquickmultipointtoucharea
  • tst_qquickpathview
  • tst_qquickpositioners
  • tst_qquickrepeater
  • tst_qquicktaphandler
  • tst_qquickvisualdatamodel
  • tst_scenegraph
  • tst_signalspy
  • tst_testfiltering
5874-1288416
2556 putModRm(ModRmMemoryDisp8, reg, base);-
2557 m_buffer.putByteUnchecked(offset);-
2558 } else {
executed 1289764 times by 153 tests: end of block
Executed by:
  • tst_bindingdependencyapi
  • tst_drawingmodes
  • tst_ecmascripttests
  • tst_examples
  • tst_flickableinterop
  • tst_multipointtoucharea_interop
  • tst_parserstress
  • tst_qjsengine
  • tst_qjsonbinding
  • tst_qjsvalue
  • tst_qjsvalueiterator
  • tst_qmlcachegen
  • tst_qmldiskcache
  • tst_qqmlapplicationengine
  • tst_qqmlbinding
  • tst_qqmlcomponent
  • tst_qqmlconnections
  • tst_qqmlconsole
  • tst_qqmlcontext
  • tst_qqmldebugclient
  • tst_qqmldebugjs
  • tst_qqmldebuglocal
  • tst_qqmldebugservice
  • tst_qqmlecmascript
  • tst_qqmlenginecleanup
  • ...
1289764
2559 putModRm(ModRmMemoryDisp32, reg, base);-
2560 m_buffer.putIntUnchecked(offset);-
2561 }
executed 5874 times by 25 tests: end of block
Executed by:
  • tst_ecmascripttests
  • tst_examples
  • tst_flickableinterop
  • tst_multipointtoucharea_interop
  • tst_qqmllistmodel
  • tst_qqmlqt
  • tst_qqmlxmlhttprequest
  • tst_qquickaccessible
  • tst_qquickanimationcontroller
  • tst_qquickanimations
  • tst_qquickdraghandler
  • tst_qquickgridview
  • tst_qquickitem2
  • tst_qquicklayouts
  • tst_qquicklistview
  • tst_qquickmousearea
  • tst_qquickmultipointtoucharea
  • tst_qquickpathview
  • tst_qquickpositioners
  • tst_qquickrepeater
  • tst_qquicktaphandler
  • tst_qquickvisualdatamodel
  • tst_scenegraph
  • tst_signalspy
  • tst_testfiltering
5874
2562 }-
2563 }-
2564-
2565 void memoryModRM_disp8(int reg, RegisterID base, int offset)-
2566 {-
2567 // A base of esp or r12 would be interpreted as a sib, so force a sib with no index & put the base in there.-
2568 ASSERT(CAN_SIGN_EXTEND_8_32(offset));-
2569#if CPU(X86_64)-
2570 if ((base == hasSib) || (base == hasSib2)) {
(base == hasSib)Description
TRUEnever evaluated
FALSEnever evaluated
(base == hasSib2)Description
TRUEnever evaluated
FALSEnever evaluated
0
2571#else-
2572 if (base == hasSib) {-
2573#endif-
2574 putModRmSib(ModRmMemoryDisp8, reg, base, noIndex, 0);-
2575 m_buffer.putByteUnchecked(offset);-
2576 } else {
never executed: end of block
0
2577 putModRm(ModRmMemoryDisp8, reg, base);-
2578 m_buffer.putByteUnchecked(offset);-
2579 }
never executed: end of block
0
2580 }-
2581-
2582 void memoryModRM_disp32(int reg, RegisterID base, int offset)-
2583 {-
2584 // A base of esp or r12 would be interpreted as a sib, so force a sib with no index & put the base in there.-
2585#if CPU(X86_64)-
2586 if ((base == hasSib) || (base == hasSib2)) {
(base == hasSib)Description
TRUEnever evaluated
FALSEnever evaluated
(base == hasSib2)Description
TRUEnever evaluated
FALSEnever evaluated
0
2587#else-
2588 if (base == hasSib) {-
2589#endif-
2590 putModRmSib(ModRmMemoryDisp32, reg, base, noIndex, 0);-
2591 m_buffer.putIntUnchecked(offset);-
2592 } else {
never executed: end of block
0
2593 putModRm(ModRmMemoryDisp32, reg, base);-
2594 m_buffer.putIntUnchecked(offset);-
2595 }
never executed: end of block
0
2596 }-
2597 -
2598 void memoryModRM(int reg, RegisterID base, RegisterID index, int scale, int offset)-
2599 {-
2600 ASSERT(index != noIndex);-
2601-
2602#if CPU(X86_64)-
2603 if (!offset && (base != noBase) && (base != noBase2))
!offsetDescription
TRUEevaluated 4876 times by 8 tests
Evaluated by:
  • tst_ecmascripttests
  • tst_examples
  • tst_qjsengine
  • tst_qjsvalue
  • tst_qqmlxmlhttprequest
  • tst_qquicklistview
  • tst_qquicktextinput
  • tst_qquickworkerscript
FALSEevaluated 1583861 times by 9 tests
Evaluated by:
  • tst_ecmascripttests
  • tst_examples
  • tst_qjsengine
  • tst_qjsvalue
  • tst_qqmlecmascript
  • tst_qqmlxmlhttprequest
  • tst_qquicklistview
  • tst_qquicktextinput
  • tst_qquickworkerscript
(base != noBase)Description
TRUEevaluated 4877 times by 8 tests
Evaluated by:
  • tst_ecmascripttests
  • tst_examples
  • tst_qjsengine
  • tst_qjsvalue
  • tst_qqmlxmlhttprequest
  • tst_qquicklistview
  • tst_qquicktextinput
  • tst_qquickworkerscript
FALSEnever evaluated
(base != noBase2)Description
TRUEevaluated 4878 times by 8 tests
Evaluated by:
  • tst_ecmascripttests
  • tst_examples
  • tst_qjsengine
  • tst_qjsvalue
  • tst_qqmlxmlhttprequest
  • tst_qquicklistview
  • tst_qquicktextinput
  • tst_qquickworkerscript
FALSEnever evaluated
0-1583861
2604#else-
2605 if (!offset && (base != noBase))-
2606#endif-
2607 putModRmSib(ModRmMemoryNoDisp, reg, base, index, scale);
executed 4875 times by 8 tests: putModRmSib(ModRmMemoryNoDisp, reg, base, index, scale);
Executed by:
  • tst_ecmascripttests
  • tst_examples
  • tst_qjsengine
  • tst_qjsvalue
  • tst_qqmlxmlhttprequest
  • tst_qquicklistview
  • tst_qquicktextinput
  • tst_qquickworkerscript
4875
2608 else if (CAN_SIGN_EXTEND_8_32(offset)) {
CAN_SIGN_EXTEND_8_32(offset)Description
TRUEevaluated 1582752 times by 9 tests
Evaluated by:
  • tst_ecmascripttests
  • tst_examples
  • tst_qjsengine
  • tst_qjsvalue
  • tst_qqmlecmascript
  • tst_qqmlxmlhttprequest
  • tst_qquicklistview
  • tst_qquicktextinput
  • tst_qquickworkerscript
FALSEnever evaluated
0-1582752
2609 putModRmSib(ModRmMemoryDisp8, reg, base, index, scale);-
2610 m_buffer.putByteUnchecked(offset);-
2611 } else {
executed 1583984 times by 9 tests: end of block
Executed by:
  • tst_ecmascripttests
  • tst_examples
  • tst_qjsengine
  • tst_qjsvalue
  • tst_qqmlecmascript
  • tst_qqmlxmlhttprequest
  • tst_qquicklistview
  • tst_qquicktextinput
  • tst_qquickworkerscript
1583984
2612 putModRmSib(ModRmMemoryDisp32, reg, base, index, scale);-
2613 m_buffer.putIntUnchecked(offset);-
2614 }
never executed: end of block
0
2615 }-
2616-
2617#if !CPU(X86_64)-
2618 void memoryModRM(int reg, const void* address)-
2619 {-
2620 // noBase + ModRmMemoryNoDisp means noBase + ModRmMemoryDisp32!-
2621 putModRm(ModRmMemoryNoDisp, reg, noBase);-
2622 m_buffer.putIntUnchecked(reinterpret_cast<int32_t>(address));-
2623 }-
2624#endif-
2625-
2626 AssemblerBuffer m_buffer;-
2627 } m_formatter;-
2628 int m_indexOfLastWatchpoint;-
2629 int m_indexOfTailOfLastWatchpoint;-
2630};-
2631-
2632} // namespace JSC-
2633-
2634#endif // ENABLE(ASSEMBLER) && CPU(X86)-
2635-
2636#endif // X86Assembler_h-
Source codeSwitch to Preprocessed file

Generated by Squish Coco 4.2.0