Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(175)

Side by Side Diff: test/cctest/compiler/test-js-typed-lowering.cc

Issue 437523002: More memory leak fixes. (Closed) Base URL: https://v8.googlecode.com/svn/branches/bleeding_edge
Patch Set: Created 6 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « test/cctest/compiler/test-instruction.cc ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2014 the V8 project authors. All rights reserved. 1 // Copyright 2014 the V8 project authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "src/v8.h" 5 #include "src/v8.h"
6 #include "test/cctest/cctest.h" 6 #include "test/cctest/cctest.h"
7 7
8 #include "src/compiler/graph-inl.h" 8 #include "src/compiler/graph-inl.h"
9 #include "src/compiler/js-typed-lowering.h" 9 #include "src/compiler/js-typed-lowering.h"
10 #include "src/compiler/node-properties-inl.h" 10 #include "src/compiler/node-properties-inl.h"
(...skipping 242 matching lines...) Expand 10 before | Expand all | Expand 10 after
253 } else { 253 } else {
254 CHECK_EQ(NumberToI32(is_signed), new_input->opcode()); 254 CHECK_EQ(NumberToI32(is_signed), new_input->opcode());
255 } 255 }
256 } 256 }
257 257
258 258
259 // A helper class for testing lowering of bitwise shift operators. 259 // A helper class for testing lowering of bitwise shift operators.
260 class JSBitwiseShiftTypedLoweringTester : public JSTypedLoweringTester { 260 class JSBitwiseShiftTypedLoweringTester : public JSTypedLoweringTester {
261 public: 261 public:
262 static const int kNumberOps = 6; 262 static const int kNumberOps = 6;
263 Operator** ops; 263 Operator* ops[kNumberOps];
264 bool* signedness; 264 bool signedness[kNumberOps];
265 265
266 JSBitwiseShiftTypedLoweringTester() { 266 JSBitwiseShiftTypedLoweringTester() {
267 Operator* o[] = {javascript.ShiftLeft(), machine.Word32Shl(), 267 int i = 0;
268 javascript.ShiftRight(), machine.Word32Sar(), 268 set(i++, javascript.ShiftLeft(), true);
269 javascript.ShiftRightLogical(), machine.Word32Shr()}; 269 set(i++, machine.Word32Shl(), false);
270 set(i++, javascript.ShiftRight(), true);
271 set(i++, machine.Word32Sar(), false);
272 set(i++, javascript.ShiftRightLogical(), false);
273 set(i++, machine.Word32Shr(), false);
274 }
270 275
271 ops = static_cast<Operator**>(malloc(sizeof(o))); 276 private:
272 memcpy(ops, o, sizeof(o)); 277 void set(int idx, Operator* op, bool s) {
273 278 ops[idx] = op;
274 // Expected signedness of left and right conversions above. 279 signedness[idx] = s;
275 bool s[] = {true, false, true, false, false, false};
276
277 signedness = static_cast<bool*>(malloc(sizeof(s)));
278 memcpy(signedness, s, sizeof(s));
279 } 280 }
280 }; 281 };
281 282
282 283
283 TEST(Int32BitwiseShifts) { 284 TEST(Int32BitwiseShifts) {
284 JSBitwiseShiftTypedLoweringTester R; 285 JSBitwiseShiftTypedLoweringTester R;
285 286
286 Type* types[] = { 287 Type* types[] = {
287 Type::SignedSmall(), Type::UnsignedSmall(), Type::OtherSigned32(), 288 Type::SignedSmall(), Type::UnsignedSmall(), Type::OtherSigned32(),
288 Type::Unsigned32(), Type::Signed32(), Type::MinusZero(), 289 Type::Unsigned32(), Type::Signed32(), Type::MinusZero(),
(...skipping 23 matching lines...) Expand all
312 } 313 }
313 } 314 }
314 } 315 }
315 } 316 }
316 317
317 318
318 // A helper class for testing lowering of bitwise operators. 319 // A helper class for testing lowering of bitwise operators.
319 class JSBitwiseTypedLoweringTester : public JSTypedLoweringTester { 320 class JSBitwiseTypedLoweringTester : public JSTypedLoweringTester {
320 public: 321 public:
321 static const int kNumberOps = 6; 322 static const int kNumberOps = 6;
322 Operator** ops; 323 Operator* ops[kNumberOps];
323 bool* signedness; 324 bool signedness[kNumberOps];
324 325
325 JSBitwiseTypedLoweringTester() { 326 JSBitwiseTypedLoweringTester() {
326 Operator* o[] = {javascript.BitwiseOr(), machine.Word32Or(), 327 int i = 0;
327 javascript.BitwiseXor(), machine.Word32Xor(), 328 set(i++, javascript.BitwiseOr(), true);
328 javascript.BitwiseAnd(), machine.Word32And()}; 329 set(i++, machine.Word32Or(), true);
330 set(i++, javascript.BitwiseXor(), true);
331 set(i++, machine.Word32Xor(), true);
332 set(i++, javascript.BitwiseAnd(), true);
333 set(i++, machine.Word32And(), true);
334 }
329 335
330 ops = static_cast<Operator**>(malloc(sizeof(o))); 336 private:
331 memcpy(ops, o, sizeof(o)); 337 void set(int idx, Operator* op, bool s) {
332 338 ops[idx] = op;
333 // Expected signedness of left and right conversions above. 339 signedness[idx] = s;
334 bool s[] = {true, true, true, true, true, true};
335
336 signedness = static_cast<bool*>(malloc(sizeof(s)));
337 memcpy(signedness, s, sizeof(s));
338 } 340 }
339 }; 341 };
340 342
341 343
342 TEST(Int32BitwiseBinops) { 344 TEST(Int32BitwiseBinops) {
343 JSBitwiseTypedLoweringTester R; 345 JSBitwiseTypedLoweringTester R;
344 346
345 Type* types[] = { 347 Type* types[] = {
346 Type::SignedSmall(), Type::UnsignedSmall(), Type::OtherSigned32(), 348 Type::SignedSmall(), Type::UnsignedSmall(), Type::OtherSigned32(),
347 Type::Unsigned32(), Type::Signed32(), Type::MinusZero(), 349 Type::Unsigned32(), Type::Signed32(), Type::MinusZero(),
(...skipping 988 matching lines...) Expand 10 before | Expand all | Expand 10 after
1336 CHECK_EQ(p1, r->InputAt(0)); 1338 CHECK_EQ(p1, r->InputAt(0));
1337 CHECK_EQ(p0, r->InputAt(1)); 1339 CHECK_EQ(p0, r->InputAt(1));
1338 } else { 1340 } else {
1339 CHECK_EQ(p0, r->InputAt(0)); 1341 CHECK_EQ(p0, r->InputAt(0));
1340 CHECK_EQ(p1, r->InputAt(1)); 1342 CHECK_EQ(p1, r->InputAt(1));
1341 } 1343 }
1342 } 1344 }
1343 } 1345 }
1344 } 1346 }
1345 } 1347 }
OLDNEW
« no previous file with comments | « test/cctest/compiler/test-instruction.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698