Refactor LLInt64 to distinguish the pointer operations from the 64-bit integer operations
https://bugs.webkit.org/show_bug.cgi?id=100321
Reviewed by Filip Pizlo.
We have refactored the MacroAssembler and JIT compilers to distinguish
the pointer operations from the 64-bit integer operations (see bug #99154).
Now we want to do the similar work for LLInt, and the goal is same as
the one mentioned in 99154.
This is the first part of the modification: in the offline assembler,
adding the support of the "<foo>q" instructions which will be used for
64-bit integer operations.
* llint/LowLevelInterpreter.cpp:
(JSC::CLoop::execute):
* offlineasm/cloop.rb:
* offlineasm/instructions.rb:
* offlineasm/x86.rb:
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@132445 268f45cc-cd09-0410-ab3c-d52691b4dbfc
diff --git a/Source/JavaScriptCore/offlineasm/instructions.rb b/Source/JavaScriptCore/offlineasm/instructions.rb
index ddb1bb9..8b23907 100644
--- a/Source/JavaScriptCore/offlineasm/instructions.rb
+++ b/Source/JavaScriptCore/offlineasm/instructions.rb
@@ -33,15 +33,19 @@
"andi",
"lshifti",
"lshiftp",
+ "lshiftq",
"muli",
"negi",
"negp",
+ "negq",
"noti",
"ori",
"rshifti",
"urshifti",
"rshiftp",
"urshiftp",
+ "rshiftq",
+ "urshiftq",
"subi",
"xori",
"loadi",
@@ -65,6 +69,8 @@
"fd2ii", # usage: fd2ii <fpr>, <gpr with least significant bits>, <gpr with most significant bits>
"fp2d",
"fd2p",
+ "fq2d",
+ "fd2q",
"bdeq",
"bdneq",
"bdgt",
@@ -86,6 +92,8 @@
"move",
"sxi2p",
"zxi2p",
+ "sxi2q",
+ "zxi2q",
"nop",
"bieq",
"bineq",
@@ -199,6 +207,46 @@
"baddps",
"baddpz",
"baddpnz",
+ "tqs",
+ "tqz",
+ "tqnz",
+ "peekq",
+ "pokeq",
+ "bqeq",
+ "bqneq",
+ "bqa",
+ "bqaeq",
+ "bqb",
+ "bqbeq",
+ "bqgt",
+ "bqgteq",
+ "bqlt",
+ "bqlteq",
+ "addq",
+ "mulq",
+ "andq",
+ "orq",
+ "subq",
+ "xorq",
+ "loadq",
+ "cqeq",
+ "cqneq",
+ "cqa",
+ "cqaeq",
+ "cqb",
+ "cqbeq",
+ "cqgt",
+ "cqgteq",
+ "cqlt",
+ "cqlteq",
+ "storeq",
+ "btqs",
+ "btqz",
+ "btqnz",
+ "baddqo",
+ "baddqs",
+ "baddqz",
+ "baddqnz",
"bo",
"bs",
"bz",