Changeset 195236 in webkit
- Timestamp:
- Jan 18, 2016 1:07:08 PM (8 years ago)
- Location:
- trunk/Source/JavaScriptCore
- Files:
-
- 4 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/JavaScriptCore/ChangeLog
r195233 r195236 1 2016-01-18 Konstantin Tokarev <annulen@yandex.ru> 2 3 [MIPS] LLInt: fix calculation of Global Offset Table 4 https://bugs.webkit.org/show_bug.cgi?id=150381 5 6 Offlineasm adds a .cpload $t9 when we create a label in MIPS, which 7 computes address of GOT. However, this instruction requires $t9 to 8 contain address of current function. So we need to set $t9 to pcBase, 9 otherwise GOT-related calculations will be invalid. 10 11 Since offlineasm does not allow direct move to $t9 on MIPS, added new 12 instruction setcallreg which does exactly that. 13 14 Reviewed by Michael Saboff. 15 16 * llint/LowLevelInterpreter.asm: 17 * offlineasm/instructions.rb: 18 * offlineasm/mips.rb: 19 1 20 2016-01-18 Csaba Osztrogonác <ossy@webkit.org> 2 21 -
trunk/Source/JavaScriptCore/llint/LowLevelInterpreter.asm
r194369 r195236 1088 1088 elsif MIPS 1089 1089 la _relativePCBase, pcBase 1090 setcallreg pcBase # needed to set $t9 to the right value for the .cpload created by the label. 1090 1091 _relativePCBase: 1091 1092 elsif SH4 -
trunk/Source/JavaScriptCore/offlineasm/instructions.rb
r175514 r195236 285 285 "movz", 286 286 "movn", 287 "setcallreg", 287 288 "slt", 288 289 "sltu", -
trunk/Source/JavaScriptCore/offlineasm/mips.rb
r195182 r195236 1034 1034 when "movn" 1035 1035 $asm.puts "movn #{operands[0].mipsOperand}, #{operands[1].mipsOperand}, #{operands[2].mipsOperand}" 1036 when "setcallreg" 1037 $asm.puts "move #{MIPS_CALL_REG.mipsOperand}, #{operands[0].mipsOperand}" 1036 1038 when "slt", "sltb" 1037 1039 $asm.puts "slt #{operands[0].mipsOperand}, #{operands[1].mipsOperand}, #{operands[2].mipsOperand}"
Note: See TracChangeset
for help on using the changeset viewer.