Changeset 214571 in webkit for trunk/Source/JavaScriptCore/b3/testb3.cpp
- Timestamp:
- Mar 29, 2017, 3:55:53 PM (8 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/JavaScriptCore/b3/testb3.cpp
r214531 r214571 67 67 #include "LinkBuffer.h" 68 68 #include "PureNaN.h" 69 #include "VM.h"70 69 #include <cmath> 71 70 #include <string> … … 119 118 } while (false) 120 119 121 VM* vm; 122 123 std::unique_ptr<Compilation> compile(Procedure& procedure, unsigned optLevel = 1) 124 { 125 return std::make_unique<Compilation>(B3::compile(*vm, procedure, optLevel)); 120 std::unique_ptr<Compilation> compileProc(Procedure& procedure, unsigned optLevel = 1) 121 { 122 return std::make_unique<Compilation>(B3::compile(procedure, optLevel)); 126 123 } 127 124 … … 142 139 T compileAndRun(Procedure& procedure, Arguments... arguments) 143 140 { 144 return invoke<T>(*compile (procedure), arguments...);141 return invoke<T>(*compileProc(procedure), arguments...); 145 142 } 146 143 … … 313 310 0, HeapRange(42), HeapRange(42))); 314 311 315 auto code = compile (proc);312 auto code = compileProc(proc); 316 313 if (isARM64()) 317 314 checkUsesInstruction(*code, "lda"); … … 616 613 constZero)); 617 614 618 auto code = compile (proc, 0);615 auto code = compileProc(proc, 0); 619 616 CHECK(invoke<int64_t>(*code, 0x0123456789abcdef) == 0x89abcdef); 620 617 } … … 633 630 root->appendNew<Value>(proc, Add, Origin(), load, load)); 634 631 635 auto code = compile (proc, optLevel);632 auto code = compileProc(proc, optLevel); 636 633 CHECK(invoke<int32_t>(*code) == 42 * 2); 637 634 }; … … 985 982 root->appendNew<Value>(proc, Mul, Origin(), load, load)); 986 983 987 auto code = compile (proc, optLevel);984 auto code = compileProc(proc, optLevel); 988 985 CHECK(invoke<int32_t>(*code) == 42 * 42); 989 986 }; … … 1005 1002 root->appendNewControlValue(proc, Return, Origin(), added); 1006 1003 1007 auto code = compile (proc);1004 auto code = compileProc(proc); 1008 1005 1009 1006 auto testValues = int64Operands(); … … 1029 1026 root->appendNewControlValue(proc, Return, Origin(), added); 1030 1027 1031 auto code = compile (proc);1028 auto code = compileProc(proc); 1032 1029 1033 1030 auto testValues = int64Operands(); … … 1056 1053 root->appendNewControlValue(proc, Return, Origin(), added); 1057 1054 1058 auto code = compile (proc);1055 auto code = compileProc(proc); 1059 1056 1060 1057 auto testValues = int32Operands(); … … 1083 1080 root->appendNewControlValue(proc, Return, Origin(), added); 1084 1081 1085 auto code = compile (proc);1082 auto code = compileProc(proc); 1086 1083 1087 1084 auto testValues = int32Operands(); … … 1107 1104 root->appendNewControlValue(proc, Return, Origin(), added); 1108 1105 1109 auto code = compile (proc);1106 auto code = compileProc(proc); 1110 1107 1111 1108 auto testValues = int64Operands(); … … 1131 1128 root->appendNewControlValue(proc, Return, Origin(), added); 1132 1129 1133 auto code = compile (proc);1130 auto code = compileProc(proc); 1134 1131 1135 1132 auto testValues = int64Operands(); … … 1158 1155 root->appendNewControlValue(proc, Return, Origin(), added); 1159 1156 1160 auto code = compile (proc);1157 auto code = compileProc(proc); 1161 1158 1162 1159 auto testValues = int32Operands(); … … 1185 1182 root->appendNewControlValue(proc, Return, Origin(), added); 1186 1183 1187 auto code = compile (proc);1184 auto code = compileProc(proc); 1188 1185 1189 1186 auto testValues = int32Operands(); … … 1209 1206 root->appendNewControlValue(proc, Return, Origin(), added); 1210 1207 1211 auto code = compile (proc);1208 auto code = compileProc(proc); 1212 1209 1213 1210 auto testValues = int64Operands(); … … 1233 1230 root->appendNewControlValue(proc, Return, Origin(), added); 1234 1231 1235 auto code = compile (proc);1232 auto code = compileProc(proc); 1236 1233 1237 1234 auto testValues = int32Operands(); … … 4637 4634 tail->appendNewControlValue(proc, Return, Origin(), equal); 4638 4635 4639 auto code = compile (proc);4636 auto code = compileProc(proc); 4640 4637 int32_t integerA = bitwise_cast<int32_t>(a); 4641 4638 double doubleB = b; … … 4686 4683 tail->appendNewControlValue(proc, Return, Origin(), floatResult); 4687 4684 4688 auto code = compile (proc);4685 auto code = compileProc(proc); 4689 4686 CHECK(isIdentical(invoke<float>(*code, 1, bitwise_cast<int32_t>(value)), value + 42.5f)); 4690 4687 CHECK(isIdentical(invoke<float>(*code, 0, bitwise_cast<int32_t>(value)), static_cast<float>(M_PI))); … … 4741 4738 tail->appendNewControlValue(proc, Return, Origin(), result); 4742 4739 4743 auto code = compile (proc);4740 auto code = compileProc(proc); 4744 4741 CHECK(isIdentical(invoke<float>(*code, 1), 11.5f * 11.5f + static_cast<float>(bitwise_cast<double>(static_cast<uint64_t>(1))) + 11.5f)); 4745 4742 CHECK(isIdentical(invoke<float>(*code, 0), 10.5f * 10.5f + static_cast<float>(bitwise_cast<double>(static_cast<uint64_t>(0))) + 10.5f)); … … 4781 4778 tail->appendNewControlValue(proc, Return, Origin(), floatResult); 4782 4779 4783 auto code = compile (proc);4780 auto code = compileProc(proc); 4784 4781 CHECK(isIdentical(invoke<float>(*code, 1, bitwise_cast<int32_t>(value)), value + value)); 4785 4782 CHECK(isIdentical(invoke<float>(*code, 0, bitwise_cast<int32_t>(value)), 42.5f + value)); … … 4830 4827 tail->appendNewControlValue(proc, Return, Origin(), doubleAdd); 4831 4828 4832 auto code = compile (proc);4829 auto code = compileProc(proc); 4833 4830 CHECK(isIdentical(invoke<double>(*code, 1, bitwise_cast<int32_t>(value)), (value + value) + static_cast<double>(value))); 4834 4831 CHECK(isIdentical(invoke<double>(*code, 0, bitwise_cast<int32_t>(value)), static_cast<double>((42.5f + value) + 42.5f))); … … 4870 4867 tail->appendNewControlValue(proc, Return, Origin(), floatResult); 4871 4868 4872 auto code = compile (proc);4869 auto code = compileProc(proc); 4873 4870 CHECK(isIdentical(invoke<float>(*code, 1, bitwise_cast<int32_t>(value)), value + value)); 4874 4871 CHECK(isIdentical(invoke<float>(*code, 0, bitwise_cast<int32_t>(value)), static_cast<float>(constValue + value))); … … 5226 5223 root->appendNewControlValue(proc, Return, Origin(), srcAsDouble); 5227 5224 5228 auto code = compile (proc);5225 auto code = compileProc(proc); 5229 5226 for (auto testValue : int64Operands()) 5230 5227 CHECK(isIdentical(invoke<double>(*code, testValue.value), static_cast<double>(testValue.value))); … … 5239 5236 root->appendNewControlValue(proc, Return, Origin(), srcAsFloat); 5240 5237 5241 auto code = compile (proc);5238 auto code = compileProc(proc); 5242 5239 for (auto testValue : int64Operands()) 5243 5240 CHECK(isIdentical(invoke<float>(*code, testValue.value), static_cast<float>(testValue.value))); … … 5253 5250 root->appendNewControlValue(proc, Return, Origin(), srcAsDouble); 5254 5251 5255 auto code = compile (proc);5252 auto code = compileProc(proc); 5256 5253 for (auto testValue : int32Operands()) 5257 5254 CHECK(isIdentical(invoke<double>(*code, testValue.value), static_cast<double>(testValue.value))); … … 5267 5264 root->appendNewControlValue(proc, Return, Origin(), srcAsFloat); 5268 5265 5269 auto code = compile (proc);5266 auto code = compileProc(proc); 5270 5267 for (auto testValue : int32Operands()) 5271 5268 CHECK(isIdentical(invoke<float>(*code, testValue.value), static_cast<float>(testValue.value))); … … 5281 5278 root->appendNewControlValue(proc, Return, Origin(), srcAsDouble); 5282 5279 5283 auto code = compile (proc);5280 auto code = compileProc(proc); 5284 5281 int64_t inMemoryValue; 5285 5282 for (auto testValue : int64Operands()) { … … 5299 5296 root->appendNewControlValue(proc, Return, Origin(), srcAsFloat); 5300 5297 5301 auto code = compile (proc);5298 auto code = compileProc(proc); 5302 5299 int64_t inMemoryValue; 5303 5300 for (auto testValue : int64Operands()) { … … 5317 5314 root->appendNewControlValue(proc, Return, Origin(), srcAsDouble); 5318 5315 5319 auto code = compile (proc);5316 auto code = compileProc(proc); 5320 5317 int32_t inMemoryValue; 5321 5318 for (auto testValue : int32Operands()) { … … 5335 5332 root->appendNewControlValue(proc, Return, Origin(), srcAsFloat); 5336 5333 5337 auto code = compile (proc);5334 auto code = compileProc(proc); 5338 5335 int32_t inMemoryValue; 5339 5336 for (auto testValue : int32Operands()) { … … 5393 5390 root->appendNewControlValue(proc, Return, Origin(), floatResult); 5394 5391 5395 auto code = compile (proc);5392 auto code = compileProc(proc); 5396 5393 for (auto testValue : int64Operands()) 5397 5394 CHECK(isIdentical(invoke<float>(*code, testValue.value), static_cast<float>(testValue.value))); … … 5408 5405 root->appendNewControlValue(proc, Return, Origin(), floatResult); 5409 5406 5410 auto code = compile (proc);5407 auto code = compileProc(proc); 5411 5408 for (auto testValue : int32Operands()) 5412 5409 CHECK(isIdentical(invoke<float>(*code, testValue.value), static_cast<float>(testValue.value))); … … 5790 5787 root->appendNew<Const32Value>(proc, Origin(), 0)); 5791 5788 5792 auto code = compile (proc);5789 auto code = compileProc(proc); 5793 5790 if (isARM64()) { 5794 5791 checkUsesInstruction(*code, "lda"); … … 5863 5860 root->appendNew<Const32Value>(proc, Origin(), 0)); 5864 5861 5865 auto code = compile (proc);5862 auto code = compileProc(proc); 5866 5863 if (isARM64()) { 5867 5864 checkUsesInstruction(*code, "lda"); … … 5902 5899 root->appendNew<Const32Value>(proc, Origin(), 0)); 5903 5900 5904 auto code = compile (proc);5901 auto code = compileProc(proc); 5905 5902 if (isARM64()) { 5906 5903 checkUsesInstruction(*code, "lda"); … … 5975 5972 root->appendNew<Const32Value>(proc, Origin(), 0)); 5976 5973 5977 auto code = compile (proc);5974 auto code = compileProc(proc); 5978 5975 if (isARM64()) { 5979 5976 checkUsesInstruction(*code, "lda"); … … 6044 6041 root->appendNew<Const32Value>(proc, Origin(), 0)); 6045 6042 6046 auto code = compile (proc);6043 auto code = compileProc(proc); 6047 6044 if (isARM64()) { 6048 6045 checkUsesInstruction(*code, "lda"); … … 7050 7047 elseCase->appendNew<Const32Value>(proc, Origin(), 0)); 7051 7048 7052 auto code = compile (proc);7049 auto code = compileProc(proc); 7053 7050 CHECK(invoke<int>(*code, 42) == 1); 7054 7051 CHECK(invoke<int>(*code, 0) == 0); … … 7075 7072 elseCase->appendNew<Const32Value>(proc, Origin(), 0)); 7076 7073 7077 auto code = compile (proc);7074 auto code = compileProc(proc); 7078 7075 CHECK(invoke<int>(*code, static_cast<intptr_t>(42)) == 1); 7079 7076 CHECK(invoke<int>(*code, static_cast<intptr_t>(0)) == 0); … … 7108 7105 done->appendNewControlValue(proc, Return, Origin(), phi); 7109 7106 7110 auto code = compile (proc);7107 auto code = compileProc(proc); 7111 7108 CHECK(invoke<int>(*code, 42) == 1); 7112 7109 CHECK(invoke<int>(*code, 0) == 0); … … 7138 7135 elseCase->appendNew<Const32Value>(proc, Origin(), 0)); 7139 7136 7140 auto code = compile (proc);7137 auto code = compileProc(proc); 7141 7138 CHECK(invoke<int>(*code, 42) == 1); 7142 7139 CHECK(invoke<int>(*code, 0) == 0); … … 7168 7165 elseCase->appendNew<Const32Value>(proc, Origin(), 0)); 7169 7166 7170 auto code = compile (proc);7167 auto code = compileProc(proc); 7171 7168 CHECK(invoke<int>(*code, 42) == 1); 7172 7169 CHECK(invoke<int>(*code, 0) == 0); … … 7201 7198 elseCase->appendNew<Const32Value>(proc, Origin(), 0)); 7202 7199 7203 auto code = compile (proc);7200 auto code = compileProc(proc); 7204 7201 CHECK(invoke<int>(*code, 42) == 1); 7205 7202 CHECK(invoke<int>(*code, 0) == 0); … … 7231 7228 elseCase->appendNew<Const32Value>(proc, Origin(), 1)); 7232 7229 7233 auto code = compile (proc);7230 auto code = compileProc(proc); 7234 7231 CHECK(invoke<int>(*code, 42) == 1); 7235 7232 CHECK(invoke<int>(*code, 0) == 0); … … 7264 7261 elseCase->appendNew<Const32Value>(proc, Origin(), 0)); 7265 7262 7266 auto code = compile (proc);7263 auto code = compileProc(proc); 7267 7264 CHECK(invoke<int>(*code, 42) == 1); 7268 7265 CHECK(invoke<int>(*code, 0) == 0); … … 7294 7291 elseCase->appendNew<Const32Value>(proc, Origin(), 1)); 7295 7292 7296 auto code = compile (proc);7293 auto code = compileProc(proc); 7297 7294 CHECK(invoke<int>(*code, 42) == 1); 7298 7295 CHECK(invoke<int>(*code, 0) == 0); … … 7327 7324 elseCase->appendNew<Const32Value>(proc, Origin(), 1)); 7328 7325 7329 auto code = compile (proc);7326 auto code = compileProc(proc); 7330 7327 CHECK(invoke<int>(*code, 42) == 1); 7331 7328 CHECK(invoke<int>(*code, 0) == 0); … … 7742 7739 elseCase->appendNew<Const32Value>(proc, Origin(), 0)); 7743 7740 7744 auto code = compile (proc);7741 auto code = compileProc(proc); 7745 7742 intptr_t cond; 7746 7743 cond = 42; … … 7772 7769 elseCase->appendNew<Const32Value>(proc, Origin(), 0)); 7773 7770 7774 auto code = compile (proc);7771 auto code = compileProc(proc); 7775 7772 int32_t cond; 7776 7773 cond = 42; … … 7802 7799 elseCase->appendNew<Const32Value>(proc, Origin(), 0)); 7803 7800 7804 auto code = compile (proc);7801 auto code = compileProc(proc); 7805 7802 int8_t cond; 7806 7803 cond = -1; … … 7832 7829 elseCase->appendNew<Const32Value>(proc, Origin(), 0)); 7833 7830 7834 auto code = compile (proc);7831 auto code = compileProc(proc); 7835 7832 uint8_t cond; 7836 7833 cond = 1; … … 7862 7859 elseCase->appendNew<Const32Value>(proc, Origin(), 0)); 7863 7860 7864 auto code = compile (proc);7861 auto code = compileProc(proc); 7865 7862 int16_t cond; 7866 7863 cond = -1; … … 7892 7889 elseCase->appendNew<Const32Value>(proc, Origin(), 0)); 7893 7890 7894 auto code = compile (proc);7891 auto code = compileProc(proc); 7895 7892 uint16_t cond; 7896 7893 cond = 1; … … 7932 7929 elseCase->appendNew<Const32Value>(proc, Origin(), 0)); 7933 7930 7934 auto code = compile (proc);7931 auto code = compileProc(proc); 7935 7932 uint32_t cond; 7936 7933 cond = 0xffffffffU; // All bytes are 0xff. … … 8069 8066 current->appendNewControlValue(proc, Return, Origin(), vars[0]); 8070 8067 8071 compile (proc);8068 compileProc(proc); 8072 8069 8073 8070 double after = monotonicallyIncreasingTimeMS(); … … 8618 8615 proc, Return, Origin(), root->appendNew<Const32Value>(proc, Origin(), 0)); 8619 8616 8620 auto code = compile (proc);8617 auto code = compileProc(proc); 8621 8618 8622 8619 CHECK(invoke<int>(*code, 0) == 0); … … 8637 8634 proc, Return, Origin(), root->appendNew<Const32Value>(proc, Origin(), 0)); 8638 8635 8639 auto code = compile (proc);8636 auto code = compileProc(proc); 8640 8637 8641 8638 CHECK(invoke<int>(*code) == 0); … … 8663 8660 proc, Return, Origin(), root->appendNew<Const32Value>(proc, Origin(), 0)); 8664 8661 8665 auto code = compile (proc);8662 auto code = compileProc(proc); 8666 8663 8667 8664 CHECK(invoke<int>(*code) == 42); … … 8694 8691 proc, Return, Origin(), root->appendNew<Const32Value>(proc, Origin(), 0)); 8695 8692 8696 auto code = compile (proc);8693 auto code = compileProc(proc); 8697 8694 8698 8695 CHECK(invoke<int>(*code, 42) == 0); … … 8740 8737 proc, Return, Origin(), root->appendNew<Const32Value>(proc, Origin(), 0)); 8741 8738 8742 auto code = compile (proc);8739 auto code = compileProc(proc); 8743 8740 8744 8741 int8_t value; … … 8795 8792 proc, Return, Origin(), root->appendNew<Const32Value>(proc, Origin(), 0)); 8796 8793 8797 auto code = compile (proc);8794 auto code = compileProc(proc); 8798 8795 8799 8796 int8_t value; … … 8859 8856 proc, Return, Origin(), root->appendNew<Const32Value>(proc, Origin(), 0)); 8860 8857 8861 auto code = compile (proc);8858 auto code = compileProc(proc); 8862 8859 8863 8860 int8_t value; … … 8940 8937 proc, Return, Origin(), elseCase->appendNew<Const32Value>(proc, Origin(), 45)); 8941 8938 8942 auto code = compile (proc);8939 auto code = compileProc(proc); 8943 8940 8944 8941 int8_t value; … … 8995 8992 root->appendNew<Value>(proc, IToD, Origin(), checkAdd)); 8996 8993 8997 auto code = compile (proc);8994 auto code = compileProc(proc); 8998 8995 8999 8996 CHECK(invoke<double>(*code, 0) == 42.0); … … 9031 9028 root->appendNew<Value>(proc, IToD, Origin(), checkAdd)); 9032 9029 9033 auto code = compile (proc);9030 auto code = compileProc(proc); 9034 9031 9035 9032 CHECK(invoke<double>(*code, 0) == 42.0); … … 9066 9063 root->appendNew<Value>(proc, IToD, Origin(), checkAdd)); 9067 9064 9068 auto code = compile (proc);9065 auto code = compileProc(proc); 9069 9066 9070 9067 CHECK(invoke<double>(*code, 0) == 42.0); … … 9103 9100 root->appendNew<Value>(proc, IToD, Origin(), checkAdd)); 9104 9101 9105 auto code = compile (proc);9102 auto code = compileProc(proc); 9106 9103 9107 9104 CHECK(invoke<double>(*code, 0, 42) == 42.0); … … 9136 9133 root->appendNew<Value>(proc, IToD, Origin(), checkAdd)); 9137 9134 9138 auto code = compile (proc);9135 auto code = compileProc(proc); 9139 9136 9140 9137 CHECK(invoke<double>(*code, 0ll, 42ll) == 42.0); … … 9157 9154 root->appendNewControlValue(proc, Return, Origin(), checkAdd); 9158 9155 9159 auto code = compile (proc);9156 auto code = compileProc(proc); 9160 9157 9161 9158 CHECK(invoke<int>(*code) == a + b); … … 9178 9175 root->appendNewControlValue(proc, Return, Origin(), checkAdd); 9179 9176 9180 auto code = compile (proc);9177 auto code = compileProc(proc); 9181 9178 9182 9179 CHECK(invoke<int>(*code) == 42); … … 9285 9282 root->appendNewControlValue(proc, Return, Origin(), checkAdd); 9286 9283 9287 auto code = compile (proc);9284 auto code = compileProc(proc); 9288 9285 9289 9286 CHECK(invoke<int64_t>(*code, 0ll) == 0); … … 9316 9313 root->appendNewControlValue(proc, Return, Origin(), checkAdd); 9317 9314 9318 auto code = compile (proc);9315 auto code = compileProc(proc); 9319 9316 9320 9317 CHECK(invoke<int32_t>(*code, 0ll) == 0); … … 9351 9348 root->appendNew<Value>(proc, IToD, Origin(), checkSub)); 9352 9349 9353 auto code = compile (proc);9350 auto code = compileProc(proc); 9354 9351 9355 9352 CHECK(invoke<double>(*code, 0) == -42.0); … … 9393 9390 root->appendNew<Value>(proc, IToD, Origin(), checkSub)); 9394 9391 9395 auto code = compile (proc);9392 auto code = compileProc(proc); 9396 9393 9397 9394 CHECK(invoke<double>(*code, 0) == -static_cast<double>(badImm)); … … 9430 9427 root->appendNew<Value>(proc, IToD, Origin(), checkSub)); 9431 9428 9432 auto code = compile (proc);9429 auto code = compileProc(proc); 9433 9430 9434 9431 CHECK(invoke<double>(*code, 0, 42) == -42.0); … … 9468 9465 root->appendNew<Value>(proc, IToD, Origin(), checkSub)); 9469 9466 9470 auto code = compile (proc);9467 auto code = compileProc(proc); 9471 9468 9472 9469 CHECK(invoke<double>(*code, 0ll, 42ll) == -42.0); … … 9489 9486 root->appendNewControlValue(proc, Return, Origin(), checkSub); 9490 9487 9491 auto code = compile (proc);9488 auto code = compileProc(proc); 9492 9489 9493 9490 CHECK(invoke<int>(*code) == a - b); … … 9510 9507 root->appendNewControlValue(proc, Return, Origin(), checkSub); 9511 9508 9512 auto code = compile (proc);9509 auto code = compileProc(proc); 9513 9510 9514 9511 CHECK(invoke<int>(*code) == 42); … … 9539 9536 root->appendNew<Value>(proc, IToD, Origin(), checkNeg)); 9540 9537 9541 auto code = compile (proc);9538 auto code = compileProc(proc); 9542 9539 9543 9540 CHECK(invoke<double>(*code, 0) == 0.0); … … 9569 9566 root->appendNew<Value>(proc, IToD, Origin(), checkNeg)); 9570 9567 9571 auto code = compile (proc);9568 auto code = compileProc(proc); 9572 9569 9573 9570 CHECK(invoke<double>(*code, 0ll) == 0.0); … … 9606 9603 root->appendNew<Value>(proc, IToD, Origin(), checkMul)); 9607 9604 9608 auto code = compile (proc);9605 auto code = compileProc(proc); 9609 9606 9610 9607 CHECK(invoke<double>(*code, 0, 42) == 0.0); … … 9647 9644 root->appendNew<Value>(proc, IToD, Origin(), checkMul)); 9648 9645 9649 auto code = compile (proc);9646 auto code = compileProc(proc); 9650 9647 9651 9648 left = 0; … … 9694 9691 root->appendNew<Value>(proc, IToD, Origin(), checkMul)); 9695 9692 9696 auto code = compile (proc);9693 auto code = compileProc(proc); 9697 9694 9698 9695 CHECK(invoke<double>(*code, 0) == 0.0); … … 9727 9724 root->appendNew<Value>(proc, IToD, Origin(), checkMul)); 9728 9725 9729 auto code = compile (proc);9726 auto code = compileProc(proc); 9730 9727 9731 9728 CHECK(invoke<double>(*code, 0, 42) == 0.0); … … 9748 9745 root->appendNewControlValue(proc, Return, Origin(), checkMul); 9749 9746 9750 auto code = compile (proc);9747 auto code = compileProc(proc); 9751 9748 9752 9749 CHECK(invoke<int>(*code) == a * b); … … 9769 9766 root->appendNewControlValue(proc, Return, Origin(), checkMul); 9770 9767 9771 auto code = compile (proc);9768 auto code = compileProc(proc); 9772 9769 9773 9770 CHECK(invoke<int>(*code) == 42); … … 9885 9882 root->appendNew<Value>(proc, IToD, Origin(), checkMul)); 9886 9883 9887 auto code = compile (proc);9884 auto code = compileProc(proc); 9888 9885 9889 9886 CHECK(invoke<double>(*code, 0ll, 42ll) == 0.0); … … 10735 10732 } 10736 10733 10737 auto code = compile (proc);10734 auto code = compileProc(proc); 10738 10735 10739 10736 for (unsigned i = 0; i < degree; ++i) { … … 10778 10775 } 10779 10776 10780 auto code = compile (proc);10777 auto code = compileProc(proc); 10781 10778 10782 10779 for (unsigned i = 0; i < degree; ++i) { … … 10817 10814 switchValue->appendCase(SwitchCase(13, FrequentedBlock(otherTarget))); 10818 10815 10819 auto code = compile (proc);10816 auto code = compileProc(proc); 10820 10817 10821 10818 for (unsigned i = 0; i < 20; ++i) { … … 10845 10842 switchValue->appendCase(SwitchCase(13, FrequentedBlock(otherTarget))); 10846 10843 10847 auto code = compile (proc);10844 auto code = compileProc(proc); 10848 10845 10849 10846 for (unsigned i = 0; i < 20; ++i) { … … 11203 11200 root->appendNew<ArgumentRegValue>(proc, Origin(), GPRInfo::argumentGPR2))); 11204 11201 11205 auto code = compile (proc);11202 auto code = compileProc(proc); 11206 11203 CHECK(invoke<intptr_t>(*code, 42, 1, 2) == 1); 11207 11204 CHECK(invoke<intptr_t>(*code, 42, 642462, 32533) == 642462); … … 11222 11219 root->appendNew<ArgumentRegValue>(proc, Origin(), GPRInfo::argumentGPR2))); 11223 11220 11224 auto code = compile (proc);11221 auto code = compileProc(proc); 11225 11222 CHECK(invoke<intptr_t>(*code, 42, 1, 2) == 1); 11226 11223 CHECK(invoke<intptr_t>(*code, 42, 642462, 32533) == 642462); … … 11244 11241 root->appendNew<ArgumentRegValue>(proc, Origin(), GPRInfo::argumentGPR1))); 11245 11242 11246 auto code = compile (proc);11243 auto code = compileProc(proc); 11247 11244 CHECK(invoke<intptr_t>(*code, -1.0, 1.0, 1, 2) == 1); 11248 11245 CHECK(invoke<intptr_t>(*code, 42.5, 42.51, 642462, 32533) == 642462); … … 11341 11338 root->appendNew<ArgumentRegValue>(proc, Origin(), FPRInfo::argumentFPR1))); 11342 11339 11343 auto code = compile (proc);11340 auto code = compileProc(proc); 11344 11341 CHECK(invoke<double>(*code, 42, 1.5, 2.6) == 1.5); 11345 11342 CHECK(invoke<double>(*code, 42, 642462.7, 32533.8) == 642462.7); … … 11360 11357 root->appendNew<ArgumentRegValue>(proc, Origin(), FPRInfo::argumentFPR1))); 11361 11358 11362 auto code = compile (proc);11359 auto code = compileProc(proc); 11363 11360 CHECK(invoke<double>(*code, 42, 1.5, 2.6) == 1.5); 11364 11361 CHECK(invoke<double>(*code, 42, 642462.7, 32533.8) == 642462.7); … … 11382 11379 root->appendNew<ArgumentRegValue>(proc, Origin(), FPRInfo::argumentFPR3))); 11383 11380 11384 auto code = compile (proc);11381 auto code = compileProc(proc); 11385 11382 CHECK(invoke<double>(*code, -1.0, 1.0, 1.1, 2.2) == 1.1); 11386 11383 CHECK(invoke<double>(*code, 42.5, 42.51, 642462.3, 32533.4) == 642462.3); … … 11468 11465 arg2, 11469 11466 arg3)); 11470 auto code = compile (proc);11467 auto code = compileProc(proc); 11471 11468 11472 11469 for (auto& left : floatingPointOperands<double>()) { … … 11495 11492 11496 11493 root->appendNewControlValue(proc, Return, Origin(), result); 11497 auto code = compile (proc);11494 auto code = compileProc(proc); 11498 11495 11499 11496 for (auto& left : floatingPointOperands<double>()) { … … 11522 11519 11523 11520 root->appendNewControlValue(proc, Return, Origin(), result); 11524 auto code = compile (proc);11521 auto code = compileProc(proc); 11525 11522 11526 11523 for (auto& left : floatingPointOperands<double>()) { … … 11550 11547 11551 11548 root->appendNewControlValue(proc, Return, Origin(), result); 11552 auto code = compile (proc);11549 auto code = compileProc(proc); 11553 11550 11554 11551 for (auto& left : floatingPointOperands<double>()) { … … 11576 11573 arg2, 11577 11574 arg0)); 11578 auto code = compile (proc);11575 auto code = compileProc(proc); 11579 11576 11580 11577 for (auto& left : floatingPointOperands<double>()) { … … 11602 11599 11603 11600 root->appendNewControlValue(proc, Return, Origin(), result); 11604 auto code = compile (proc);11601 auto code = compileProc(proc); 11605 11602 11606 11603 for (auto& left : floatingPointOperands<double>()) { … … 11654 11651 arg2, 11655 11652 arg3)); 11656 auto code = compile (proc);11653 auto code = compileProc(proc); 11657 11654 11658 11655 for (auto& left : floatingPointOperands<float>()) { … … 11689 11686 11690 11687 root->appendNewControlValue(proc, Return, Origin(), result); 11691 auto code = compile (proc);11688 auto code = compileProc(proc); 11692 11689 11693 11690 for (auto& left : floatingPointOperands<float>()) { … … 11724 11721 11725 11722 root->appendNewControlValue(proc, Return, Origin(), result); 11726 auto code = compile (proc);11723 auto code = compileProc(proc); 11727 11724 11728 11725 for (auto& left : floatingPointOperands<float>()) { … … 11760 11757 11761 11758 root->appendNewControlValue(proc, Return, Origin(), result); 11762 auto code = compile (proc);11759 auto code = compileProc(proc); 11763 11760 11764 11761 for (auto& left : floatingPointOperands<float>()) { … … 11792 11789 arg2, 11793 11790 arg0)); 11794 auto code = compile (proc);11791 auto code = compileProc(proc); 11795 11792 11796 11793 for (auto& left : floatingPointOperands<float>()) { … … 11824 11821 11825 11822 root->appendNewControlValue(proc, Return, Origin(), result); 11826 auto code = compile (proc);11823 auto code = compileProc(proc); 11827 11824 11828 11825 for (auto& left : floatingPointOperands<float>()) { … … 11861 11858 root->appendNew<ArgumentRegValue>(proc, Origin(), GPRInfo::argumentGPR1))); 11862 11859 11863 auto code = compile (proc);11860 auto code = compileProc(proc); 11864 11861 CHECK(invoke<intptr_t>(*code, 1, 2) == (value == 42 ? 1 : 2)); 11865 11862 CHECK(invoke<intptr_t>(*code, 642462, 32533) == (value == 42 ? 642462 : 32533)); … … 11884 11881 root->appendNew<ArgumentRegValue>(proc, Origin(), GPRInfo::argumentGPR2))); 11885 11882 11886 auto code = compile (proc);11883 auto code = compileProc(proc); 11887 11884 CHECK(invoke<intptr_t>(*code, 42, 1, 2) == 1); 11888 11885 CHECK(invoke<intptr_t>(*code, 42, 642462, 32533) == 642462); … … 11927 11924 root->appendNew<Const32Value>(proc, Origin(), 0)); 11928 11925 11929 auto code = compile (proc);11926 auto code = compileProc(proc); 11930 11927 CHECK(generationCount == 1); 11931 11928 CHECK(invoke<int>(*code, true) == 0); … … 11998 11995 root->appendNew<Const32Value>(proc, Origin(), 0)); 11999 11996 12000 auto code = compile (proc);11997 auto code = compileProc(proc); 12001 11998 CHECK(generationCount == 1); 12002 11999 CHECK(generationCount2 == 1); … … 12044 12041 root->appendNew<Value>(proc, Add, Origin(), addValue, addValue2)); 12045 12042 12046 auto code = compile (proc);12043 auto code = compileProc(proc); 12047 12044 CHECK(generationCount == 1); 12048 12045 CHECK(invoke<int>(*code, true) == 0); … … 12453 12450 loop->appendNewControlValue(proc, Jump, Origin(), FrequentedBlock(loop)); 12454 12451 12455 compile (proc);12452 compileProc(proc); 12456 12453 } 12457 12454 … … 12478 12475 proc, Equal, Origin(), arg, elseBlock->appendNew<ConstPtrValue>(proc, Origin(), 0))); 12479 12476 12480 auto code = compile (proc);12477 auto code = compileProc(proc); 12481 12478 CHECK(invoke<intptr_t>(*code, 0) == 1); 12482 12479 CHECK(invoke<intptr_t>(*code, 1) == 0); … … 12495 12492 root->appendNew<Value>(proc, Shl, Origin(), arg, arg)); 12496 12493 12497 auto code = compile (proc);12494 auto code = compileProc(proc); 12498 12495 12499 12496 auto check = [&] (int32_t value) { … … 12518 12515 root->appendNew<Value>(proc, SShr, Origin(), arg, arg)); 12519 12516 12520 auto code = compile (proc);12517 auto code = compileProc(proc); 12521 12518 12522 12519 auto check = [&] (int32_t value) { … … 12541 12538 root->appendNew<Value>(proc, ZShr, Origin(), arg, arg)); 12542 12539 12543 auto code = compile (proc);12540 auto code = compileProc(proc); 12544 12541 12545 12542 auto check = [&] (uint32_t value) { … … 12563 12560 proc, Shl, Origin(), arg, root->appendNew<Value>(proc, Trunc, Origin(), arg))); 12564 12561 12565 auto code = compile (proc);12562 auto code = compileProc(proc); 12566 12563 12567 12564 auto check = [&] (int64_t value) { … … 12587 12584 proc, SShr, Origin(), arg, root->appendNew<Value>(proc, Trunc, Origin(), arg))); 12588 12585 12589 auto code = compile (proc);12586 auto code = compileProc(proc); 12590 12587 12591 12588 auto check = [&] (int64_t value) { … … 12611 12608 proc, ZShr, Origin(), arg, root->appendNew<Value>(proc, Trunc, Origin(), arg))); 12612 12609 12613 auto code = compile (proc);12610 auto code = compileProc(proc); 12614 12611 12615 12612 auto check = [&] (uint64_t value) { … … 12644 12641 root->appendNewControlValue(proc, Return, Origin(), patchpoint); 12645 12642 12646 auto code = compile (proc);12643 auto code = compileProc(proc); 12647 12644 CHECK(numCalls == 1); 12648 12645 CHECK(invoke<double>(*code, 42.5) == 42.5); … … 12677 12674 root->appendNewControlValue(proc, Return, Origin(), result); 12678 12675 12679 auto code = compile (proc);12676 auto code = compileProc(proc); 12680 12677 CHECK(invoke<int64_t>(*code, 0xffffffff00000000) == 0); 12681 12678 } … … 12731 12728 tail->appendNewControlValue(proc, Return, Origin(), phi); 12732 12729 12733 auto code = compile (proc);12730 auto code = compileProc(proc); 12734 12731 CHECK(invoke<uint64_t>(*code, 1, 0xffffffff00000000) == 0); 12735 12732 CHECK(invoke<uint64_t>(*code, 0, 0xffffffff00000000) == 0xffffffff00000000); … … 12813 12810 root->appendNewControlValue(proc, Return, Origin(), secondPatchpoint); 12814 12811 12815 auto code = compile (proc);12812 auto code = compileProc(proc); 12816 12813 CHECK(invoke<uint64_t>(*code) == result); 12817 12814 } … … 12987 12984 stop->appendIntConstant(proc, Origin(), pointerType(), 0)); 12988 12985 12989 auto interpreter = compile (proc);12986 auto interpreter = compileProc(proc); 12990 12987 12991 12988 Vector<intptr_t> data; … … 13137 13134 CCallHelpers jit; 13138 13135 generate(proc, jit); 13139 LinkBuffer linkBuffer( *vm,jit, nullptr);13136 LinkBuffer linkBuffer(jit, nullptr); 13140 13137 CodeLocationLabel labelOne = linkBuffer.locationOf(proc.entrypointLabel(0)); 13141 13138 CodeLocationLabel labelTwo = linkBuffer.locationOf(proc.entrypointLabel(1)); … … 13170 13167 CCallHelpers jit; 13171 13168 generate(proc, jit); 13172 LinkBuffer linkBuffer( *vm,jit, nullptr);13169 LinkBuffer linkBuffer(jit, nullptr); 13173 13170 CodeLocationLabel labelOne = linkBuffer.locationOf(proc.entrypointLabel(0)); 13174 13171 CodeLocationLabel labelTwo = linkBuffer.locationOf(proc.entrypointLabel(1)); … … 13257 13254 CCallHelpers jit; 13258 13255 generate(proc, jit); 13259 LinkBuffer linkBuffer( *vm,jit, nullptr);13256 LinkBuffer linkBuffer(jit, nullptr); 13260 13257 CodeLocationLabel labelOne = linkBuffer.locationOf(proc.entrypointLabel(0)); 13261 13258 CodeLocationLabel labelTwo = linkBuffer.locationOf(proc.entrypointLabel(1)); … … 13374 13371 CCallHelpers jit; 13375 13372 generate(proc, jit); 13376 LinkBuffer linkBuffer( *vm,jit, nullptr);13373 LinkBuffer linkBuffer(jit, nullptr); 13377 13374 CodeLocationLabel labelOne = linkBuffer.locationOf(proc.entrypointLabel(0)); 13378 13375 CodeLocationLabel labelTwo = linkBuffer.locationOf(proc.entrypointLabel(1)); … … 13452 13449 CCallHelpers jit; 13453 13450 generate(proc, jit); 13454 LinkBuffer linkBuffer( *vm,jit, nullptr);13451 LinkBuffer linkBuffer(jit, nullptr); 13455 13452 CodeLocationLabel labelOne = linkBuffer.locationOf(proc.entrypointLabel(0)); 13456 13453 CodeLocationLabel labelTwo = linkBuffer.locationOf(proc.entrypointLabel(1)); … … 13501 13498 root->appendNew<Value>(proc, Return, Origin(), patchpoint); 13502 13499 13503 compile (proc);13500 compileProc(proc); 13504 13501 CHECK(ranFirstPatchpoint); 13505 13502 CHECK(ranSecondPatchpoint); … … 13615 13612 slowPath->appendNew<Value>(proc, Return, Origin(), slowPath->appendNew<Const32Value>(proc, Origin(), 20)); 13616 13613 13617 auto code = compile (proc);13614 auto code = compileProc(proc); 13618 13615 CHECK_EQ(invoke<int>(*code), 10); 13619 13616 } … … 13703 13700 Options::maxB3TailDupBlockSuccessors() = 0; 13704 13701 13705 auto code = compile (proc);13702 auto code = compileProc(proc); 13706 13703 CHECK_EQ(invoke<int>(*code, 1), 1); 13707 13704 CHECK_EQ(invoke<int>(*code, 0), 0); … … 13777 13774 continuation->appendNew<Value>(proc, Return, Origin(), phi); 13778 13775 13779 auto code = compile (proc);13776 auto code = compileProc(proc); 13780 13777 CHECK_EQ(invoke<int>(*code, 0), 31); 13781 13778 CHECK_EQ(invoke<int>(*code, 1), 32); … … 13795 13792 root->appendNew<Value>(proc, Return, Origin(), root->appendIntConstant(proc, Origin(), Int32, 42)); 13796 13793 13797 auto code = compile (proc);13794 auto code = compileProc(proc); 13798 13795 CHECK_EQ(invoke<int>(*code), 42); 13799 13796 if (isX86()) … … 13814 13811 root->appendNew<Value>(proc, Return, Origin(), root->appendIntConstant(proc, Origin(), Int32, 42)); 13815 13812 13816 auto code = compile (proc);13813 auto code = compileProc(proc); 13817 13814 CHECK_EQ(invoke<int>(*code), 42); 13818 13815 checkDoesNotUseInstruction(*code, "lock"); … … 13831 13828 root->appendNew<Value>(proc, Return, Origin(), root->appendIntConstant(proc, Origin(), Int32, 42)); 13832 13829 13833 auto code = compile (proc);13830 auto code = compileProc(proc); 13834 13831 CHECK_EQ(invoke<int>(*code), 42); 13835 13832 checkDoesNotUseInstruction(*code, "lock"); … … 14056 14053 root->appendNew<Value>(proc, Return, Origin()); 14057 14054 14058 compile (proc);14055 compileProc(proc); 14059 14056 } 14060 14057 … … 14091 14088 }); 14092 14089 root->appendNew<Value>(proc, Return, Origin()); 14093 auto code = compile (proc);14090 auto code = compileProc(proc); 14094 14091 bool usesCSRs = false; 14095 14092 for (Air::BasicBlock* block : proc.code()) { … … 14130 14127 root->appendNew<Value>(proc, Return, Origin(), result); 14131 14128 14132 auto code = compile (proc);14129 auto code = compileProc(proc); 14133 14130 checkUsesInstruction(*code, "lea 0x64(%rdi,%rsi,4), %rax"); 14134 14131 CHECK_EQ(invoke<intptr_t>(*code, 1, 2), (1 + (2 << 2)) + 100); … … 14152 14149 root->appendNew<Value>(proc, Return, Origin(), result); 14153 14150 14154 auto code = compile (proc);14151 auto code = compileProc(proc); 14155 14152 checkUsesInstruction(*code, "lea 0x64(%rdi,%rsi,4), %rax"); 14156 14153 CHECK_EQ(invoke<intptr_t>(*code, 1, 2), (1 + (2 << 2)) + 100); … … 14171 14168 root->appendNew<Value>(proc, Return, Origin(), result); 14172 14169 14173 auto code = compile (proc);14170 auto code = compileProc(proc); 14174 14171 CHECK_EQ(invoke<intptr_t>(*code, 1, 2), (1 + 2) + 100); 14175 14172 checkDisassembly( … … 14196 14193 root->appendNew<Value>(proc, Return, Origin(), result); 14197 14194 14198 auto code = compile (proc);14195 auto code = compileProc(proc); 14199 14196 checkUsesInstruction(*code, "lea (%rdi,%rsi,4), %rax"); 14200 14197 CHECK_EQ(invoke<intptr_t>(*code, 1, 2), 1 + (2 << 2)); … … 14215 14212 root->appendNew<Value>(proc, Return, Origin(), result); 14216 14213 14217 auto code = compile (proc);14214 auto code = compileProc(proc); 14218 14215 CHECK_EQ(invoke<intptr_t>(*code, 1, 2), 1 + 2); 14219 14216 checkDisassembly( … … 14240 14237 root->appendNew<Value>(proc, Return, Origin(), result); 14241 14238 14242 auto code = compile (proc);14239 auto code = compileProc(proc); 14243 14240 checkUsesInstruction(*code, "lea (%rdi,%rsi,2), %rax"); 14244 14241 CHECK_EQ(invoke<intptr_t>(*code, 1, 2), 1 + (2 << 1)); … … 14259 14256 root->appendNew<Value>(proc, Return, Origin(), result); 14260 14257 14261 auto code = compile (proc);14258 auto code = compileProc(proc); 14262 14259 checkUsesInstruction(*code, "lea (%rdi,%rsi,4), %rax"); 14263 14260 CHECK_EQ(invoke<intptr_t>(*code, 1, 2), 1 + (2 << 2)); … … 14278 14275 root->appendNew<Value>(proc, Return, Origin(), result); 14279 14276 14280 auto code = compile (proc);14277 auto code = compileProc(proc); 14281 14278 checkUsesInstruction(*code, "lea (%rdi,%rsi,8), %rax"); 14282 14279 CHECK_EQ(invoke<intptr_t>(*code, 1, 2), 1 + (2 << 3)); … … 14297 14294 root->appendNew<Value>(proc, Return, Origin(), result); 14298 14295 14299 auto code = compile (proc);14296 auto code = compileProc(proc); 14300 14297 CHECK_EQ(invoke<intptr_t>(*code, 1, 2), 1 + (static_cast<intptr_t>(2) << static_cast<intptr_t>(32))); 14301 14298 } … … 14315 14312 root->appendNew<Value>(proc, Return, Origin(), result); 14316 14313 14317 auto code = compile (proc);14314 auto code = compileProc(proc); 14318 14315 CHECK_EQ(invoke<intptr_t>(*code, 1, 2), 1 + 2); 14319 14316 } … … 14333 14330 root->appendNew<Value>(proc, Return, Origin(), result); 14334 14331 14335 auto code = compile (proc);14332 auto code = compileProc(proc); 14336 14333 CHECK_EQ(invoke<intptr_t>(*code, 1, 2), 1 + (2 << 1)); 14337 14334 } … … 14397 14394 root->appendNew<ArgumentRegValue>(proc, Origin(), GPRInfo::argumentGPR1), 14398 14395 root->appendNew<Const32Value>(proc, Origin(), 2))))); 14399 auto code = compile (proc);14396 auto code = compileProc(proc); 14400 14397 if (isX86()) 14401 14398 checkUsesInstruction(*code, "(%rdi,%rsi,4)"); … … 14421 14418 root->appendNew<ArgumentRegValue>(proc, Origin(), GPRInfo::argumentGPR1), 14422 14419 root->appendNew<Const32Value>(proc, Origin(), 32))))); 14423 auto code = compile (proc);14420 auto code = compileProc(proc); 14424 14421 int32_t value = 12341234; 14425 14422 char* ptr = bitwise_cast<char*>(&value); … … 14438 14435 root->appendNew<Value>(proc, Return, Origin()); 14439 14436 14440 auto code = compile (proc);14437 auto code = compileProc(proc); 14441 14438 bool found = false; 14442 14439 for (Air::BasicBlock* block : proc.code()) { … … 14494 14491 done->appendNew<Value>(proc, Return, Origin()); 14495 14492 14496 auto code = compile (proc);14493 auto code = compileProc(proc); 14497 14494 T value[2]; 14498 14495 value[0] = 42; … … 14525 14522 done->appendNew<Value>(proc, Return, Origin()); 14526 14523 14527 auto code = compile (proc);14524 auto code = compileProc(proc); 14528 14525 T value[2]; 14529 14526 value[0] = 42; … … 14559 14556 fail->appendNew<Value>(proc, Return, Origin()); 14560 14557 14561 auto code = compile (proc);14558 auto code = compileProc(proc); 14562 14559 T value[2]; 14563 14560 value[0] = 42; … … 14601 14598 fail->appendNew<Value>(proc, Return, Origin()); 14602 14599 14603 auto code = compile (proc);14600 auto code = compileProc(proc); 14604 14601 T value[2]; 14605 14602 value[0] = 42; … … 14627 14624 root->appendNew<ArgumentRegValue>(proc, Origin(), GPRInfo::argumentGPR0))); 14628 14625 14629 auto code = compile (proc);14626 auto code = compileProc(proc); 14630 14627 T value[2]; 14631 14628 value[0] = 42; … … 14656 14653 root->appendNew<Const32Value>(proc, Origin(), 0))); 14657 14654 14658 auto code = compile (proc);14655 auto code = compileProc(proc); 14659 14656 T value[2]; 14660 14657 value[0] = 42; … … 14683 14680 42)); 14684 14681 14685 auto code = compile (proc);14682 auto code = compileProc(proc); 14686 14683 T value[2]; 14687 14684 value[0] = 42; … … 14747 14744 fail->appendNew<Value>(proc, Return, Origin()); 14748 14745 14749 auto code = compile (proc);14746 auto code = compileProc(proc); 14750 14747 T value[2]; 14751 14748 value[0] = 42; … … 14788 14785 fail->appendNew<Value>(proc, Return, Origin()); 14789 14786 14790 auto code = compile (proc);14787 auto code = compileProc(proc); 14791 14788 T value[2]; 14792 14789 value[0] = 42; … … 14829 14826 fail->appendNew<Value>(proc, Return, Origin()); 14830 14827 14831 auto code = compile (proc);14828 auto code = compileProc(proc); 14832 14829 T value[2]; 14833 14830 value[0] = 42; … … 14854 14851 root->appendNew<ArgumentRegValue>(proc, Origin(), GPRInfo::argumentGPR0))); 14855 14852 14856 auto code = compile (proc);14853 auto code = compileProc(proc); 14857 14854 T value[2]; 14858 14855 value[0] = 42; … … 14886 14883 root->appendIntConstant(proc, Origin(), type, 42))); 14887 14884 14888 auto code = compile (proc);14885 auto code = compileProc(proc); 14889 14886 T value[2]; 14890 14887 value[0] = 42; … … 14917 14914 root->appendNew<Const32Value>(proc, Origin(), 0))); 14918 14915 14919 auto code = compile (proc);14916 auto code = compileProc(proc); 14920 14917 T value[2]; 14921 14918 value[0] = 42; … … 14998 14995 root->appendNew<ArgumentRegValue>(proc, Origin(), GPRInfo::argumentGPR0))); 14999 14996 15000 auto code = compile (proc);14997 auto code = compileProc(proc); 15001 14998 T value[2]; 15002 14999 value[0] = 5; … … 15018 15015 root->appendNew<ArgumentRegValue>(proc, Origin(), GPRInfo::argumentGPR0))); 15019 15016 15020 auto code = compile (proc);15017 auto code = compileProc(proc); 15021 15018 T value[2]; 15022 15019 value[0] = 5; … … 15037 15034 root->appendNew<Value>(proc, Return, Origin()); 15038 15035 15039 auto code = compile (proc);15036 auto code = compileProc(proc); 15040 15037 T value[2]; 15041 15038 value[0] = 5; … … 15057 15054 root->appendNew<Value>(proc, Return, Origin()); 15058 15055 15059 auto code = compile (proc);15056 auto code = compileProc(proc); 15060 15057 T value[2]; 15061 15058 value[0] = 5; … … 15090 15087 values[1] = 0xbeef; 15091 15088 15092 auto code = compile (proc);15089 auto code = compileProc(proc); 15093 15090 if (isARM64()) 15094 15091 checkUsesInstruction(*code, "eor"); … … 15120 15117 values[1] = 0xbeef; 15121 15118 15122 auto code = compile (proc);15119 auto code = compileProc(proc); 15123 15120 if (isARM64()) 15124 15121 checkUsesInstruction(*code, "eor"); … … 15155 15152 root->appendNewControlValue(proc, Return, Origin(), result); 15156 15153 15157 auto code = compile (proc);15154 auto code = compileProc(proc); 15158 15155 CHECK_EQ(invoke<int32_t>(*code, 1, 2 + offset), 0x42); 15159 15156 CHECK_EQ(invoke<int32_t>(*code, 3, 2 + offset), 42); … … 15206 15203 15207 15204 15208 auto code = compile (proc);15205 auto code = compileProc(proc); 15209 15206 invoke<void>(*code, loopCount, numToStore, values.data()); 15210 15207 for (unsigned value : values) … … 15319 15316 { 15320 15317 JSC::initializeThreading(); 15321 vm = &VM::create(LargeHeap).leakRef();15322 15318 15323 15319 Deque<RefPtr<SharedTask<void()>>> tasks; … … 16000 15996 RUN(testAdd1(45)); 16001 15997 RUN(testAdd1Ptr(51)); 16002 RUN(testAdd1Ptr( bitwise_cast<intptr_t>(vm)));15998 RUN(testAdd1Ptr(static_cast<intptr_t>(0xbaadbeef))); 16003 15999 RUN(testNeg32(52)); 16004 16000 RUN(testNegPtr(53));
Note:
See TracChangeset
for help on using the changeset viewer.