Source/JavaScriptCore/ChangeLog

 12014-08-18 Michael Saboff <msaboff@apple.com>
 2
 3 REGRESSION(r163179): It broke the build on ARM Thumb2 with GCC
 4 https://bugs.webkit.org/show_bug.cgi?id=136028
 5
 6 Reviewed by NOBODY (OOPS!).
 7
 8 Added back ARMv7 conditionals around three op addp and subp since ARM Thumb2 spec says that
 9 the behavior for those ops are undefined. This was originally done in changeset 163179.
 10
 11 * llint/LowLevelInterpreter32_64.asm:
 12
1132014-08-18 Commit Queue <commit-queue@webkit.org>
214
315 Unreviewed, rolling out r172741.
172744

Source/JavaScriptCore/llint/LowLevelInterpreter32_64.asm

@@macro doVMEntry(makeCall)
203203 loadp 8[cfr], entry
204204 end
205205
206  vmEntryRecord(cfr, sp)
 206 if ARMv7
 207 vmEntryRecord(cfr, temp1)
 208 move temp1, sp
 209 else
 210 vmEntryRecord(cfr, sp)
 211 end
207212
208213 storep vm, VMEntryRecord::m_vm[sp]
209214 loadp VM::topCallFrame[vm], temp2

@@macro doVMEntry(makeCall)
219224 elsif ARM or ARMv7 or ARMv7_TRADITIONAL
220225 addp CallFrameAlignSlots * SlotSize, sp, temp1
221226 clrbp temp1, StackAlignmentMask, temp1
222  subp temp1, CallFrameAlignSlots * SlotSize, sp
 227 if ARMv7
 228 subp temp1, CallFrameAlignSlots * SlotSize, temp1
 229 move temp1, sp
 230 else
 231 subp temp1, CallFrameAlignSlots * SlotSize, sp
 232 end
223233 end
224234
225235 if X86 or X86_WIN

@@macro doVMEntry(makeCall)
252262
253263 cCall2(_llint_throw_stack_overflow_error, vm, protoCallFrame)
254264
255  vmEntryRecord(cfr, sp)
 265 if ARMv7
 266 vmEntryRecord(cfr, temp1)
 267 move temp1, sp
 268 else
 269 vmEntryRecord(cfr, sp)
 270 end
256271
257272 loadp VMEntryRecord::m_vm[sp], temp3
258273 loadp VMEntryRecord::m_prevTopCallFrame[sp], temp4

@@macro doVMEntry(makeCall)
260275 loadp VMEntryRecord::m_prevTopVMEntryFrame[sp], temp4
261276 storep temp4, VM::topVMEntryFrame[temp3]
262277
263  subp cfr, CalleeRegisterSaveSize, sp
 278 if ARMv7
 279 subp cfr, CalleeRegisterSaveSize, temp3
 280 move temp3, sp
 281 else
 282 subp cfr, CalleeRegisterSaveSize, sp
 283 end
264284
265285 popCalleeSaves()
266286 functionEpilogue()

@@macro doVMEntry(makeCall)
308328
309329 makeCall(entry, temp1, temp2)
310330
311  vmEntryRecord(cfr, sp)
 331 if ARMv7
 332 vmEntryRecord(cfr, temp1)
 333 move temp1, sp
 334 else
 335 vmEntryRecord(cfr, sp)
 336 end
312337
313338 loadp VMEntryRecord::m_vm[sp], temp3
314339 loadp VMEntryRecord::m_prevTopCallFrame[sp], temp4

@@macro doVMEntry(makeCall)
316341 loadp VMEntryRecord::m_prevTopVMEntryFrame[sp], temp4
317342 storep temp4, VM::topVMEntryFrame[temp3]
318343
319  subp cfr, CalleeRegisterSaveSize, sp
 344 if ARMv7
 345 subp cfr, CalleeRegisterSaveSize, temp3
 346 move temp3, sp
 347 else
 348 subp cfr, CalleeRegisterSaveSize, sp
 349 end
320350
321351 popCalleeSaves()
322352 functionEpilogue()

@@_handleUncaughtException:
373403 loadp CallerFrame + PayloadOffset[cfr], cfr
374404
375405 vmEntryRecord(cfr, sp)
 406 if ARMv7
 407 vmEntryRecord(cfr, t3)
 408 move t3, sp
 409 else
 410 vmEntryRecord(cfr, sp)
 411 end
376412
377413 loadp VMEntryRecord::m_vm[sp], t3
378414 loadp VMEntryRecord::m_prevTopCallFrame[sp], t5

@@_handleUncaughtException:
380416 loadp VMEntryRecord::m_prevTopVMEntryFrame[sp], t5
381417 storep t5, VM::topVMEntryFrame[t3]
382418
383  subp cfr, CalleeRegisterSaveSize, sp
 419 if ARMv7
 420 subp cfr, CalleeRegisterSaveSize, t3
 421 move t3, sp
 422 else
 423 subp cfr, CalleeRegisterSaveSize, sp
 424 end
384425
385426 popCalleeSaves()
386427 functionEpilogue()
172687