Changeset 201651 in webkit
- Timestamp:
- Jun 3, 2016 11:42:11 AM (8 years ago)
- Location:
- trunk/Source/JavaScriptCore
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/JavaScriptCore/ChangeLog
r201646 r201651 1 2016-06-03 Mark Lam <mark.lam@apple.com> 2 3 ARMv7 vstm and vldm instructions can only operate on a maximum of 16 registers. 4 https://bugs.webkit.org/show_bug.cgi?id=158349 5 6 Reviewed by Filip Pizlo. 7 8 According to the ARM Assembler Reference, the vstm and vldm instructions can only 9 operate on a maximum of 16 registers. See 10 http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.dht0002a/ch01s03s02.html 11 and http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.dht0002a/ch01s03s02.html. 12 13 The ARMv7 probe code was wrongly using these instructions to store and load all 14 32 'd' registers. This is now fixed. 15 16 * assembler/MacroAssemblerARMv7.cpp: 17 1 18 2016-06-03 Mark Lam <mark.lam@apple.com> 2 19 -
trunk/Source/JavaScriptCore/assembler/MacroAssemblerARMv7.cpp
r191191 r201651 225 225 226 226 "add ip, sp, #" STRINGIZE_VALUE_OF(PROBE_CPU_D0_OFFSET) "\n" 227 "vstmia.64 ip, { d0-d31 }" "\n" 227 "vstmia.64 ip!, { d0-d15 }" "\n" 228 "vstmia.64 ip!, { d16-d31 }" "\n" 228 229 229 230 "mov fp, sp" "\n" // Save the ProbeContext*. … … 239 240 240 241 "add ip, sp, #" STRINGIZE_VALUE_OF(PROBE_CPU_D31_OFFSET + FPREG_SIZE) "\n" 241 "vldmdb.64 ip!, { d0-d31 }" "\n" 242 "vldmdb.64 ip!, { d16-d31 }" "\n" 243 "vldmdb.64 ip!, { d0-d15 }" "\n" 244 242 245 "add ip, sp, #" STRINGIZE_VALUE_OF(PROBE_CPU_R11_OFFSET + GPREG_SIZE) "\n" 243 246 "ldmdb ip, { r0-r11 }" "\n"
Note: See TracChangeset
for help on using the changeset viewer.