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

Side by Side Diff: test/cctest/test-assembler-arm.cc

Issue 6685088: Merge isolates to bleeding_edge. (Closed) Base URL: http://v8.googlecode.com/svn/branches/bleeding_edge/
Patch Set: '' Created 9 years, 9 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/test-api.cc ('k') | test/cctest/test-assembler-ia32.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2010 the V8 project authors. All rights reserved. 1 // Copyright 2010 the V8 project authors. All rights reserved.
2 // Redistribution and use in source and binary forms, with or without 2 // Redistribution and use in source and binary forms, with or without
3 // modification, are permitted provided that the following conditions are 3 // modification, are permitted provided that the following conditions are
4 // met: 4 // met:
5 // 5 //
6 // * Redistributions of source code must retain the above copyright 6 // * Redistributions of source code must retain the above copyright
7 // notice, this list of conditions and the following disclaimer. 7 // notice, this list of conditions and the following disclaimer.
8 // * Redistributions in binary form must reproduce the above 8 // * Redistributions in binary form must reproduce the above
9 // copyright notice, this list of conditions and the following 9 // copyright notice, this list of conditions and the following
10 // disclaimer in the documentation and/or other materials provided 10 // disclaimer in the documentation and/or other materials provided
(...skipping 47 matching lines...) Expand 10 before | Expand all | Expand 10 after
58 InitializeVM(); 58 InitializeVM();
59 v8::HandleScope scope; 59 v8::HandleScope scope;
60 60
61 Assembler assm(NULL, 0); 61 Assembler assm(NULL, 0);
62 62
63 __ add(r0, r0, Operand(r1)); 63 __ add(r0, r0, Operand(r1));
64 __ mov(pc, Operand(lr)); 64 __ mov(pc, Operand(lr));
65 65
66 CodeDesc desc; 66 CodeDesc desc;
67 assm.GetCode(&desc); 67 assm.GetCode(&desc);
68 Object* code = Heap::CreateCode( 68 Object* code = HEAP->CreateCode(
69 desc, 69 desc,
70 Code::ComputeFlags(Code::STUB), 70 Code::ComputeFlags(Code::STUB),
71 Handle<Object>(Heap::undefined_value()))->ToObjectChecked(); 71 Handle<Object>(HEAP->undefined_value()))->ToObjectChecked();
72 CHECK(code->IsCode()); 72 CHECK(code->IsCode());
73 #ifdef DEBUG 73 #ifdef DEBUG
74 Code::cast(code)->Print(); 74 Code::cast(code)->Print();
75 #endif 75 #endif
76 F2 f = FUNCTION_CAST<F2>(Code::cast(code)->entry()); 76 F2 f = FUNCTION_CAST<F2>(Code::cast(code)->entry());
77 int res = reinterpret_cast<int>(CALL_GENERATED_CODE(f, 3, 4, 0, 0, 0)); 77 int res = reinterpret_cast<int>(CALL_GENERATED_CODE(f, 3, 4, 0, 0, 0));
78 ::printf("f() = %d\n", res); 78 ::printf("f() = %d\n", res);
79 CHECK_EQ(7, res); 79 CHECK_EQ(7, res);
80 } 80 }
81 81
(...skipping 13 matching lines...) Expand all
95 __ add(r0, r0, Operand(r1)); 95 __ add(r0, r0, Operand(r1));
96 __ sub(r1, r1, Operand(1)); 96 __ sub(r1, r1, Operand(1));
97 97
98 __ bind(&C); 98 __ bind(&C);
99 __ teq(r1, Operand(0, RelocInfo::NONE)); 99 __ teq(r1, Operand(0, RelocInfo::NONE));
100 __ b(ne, &L); 100 __ b(ne, &L);
101 __ mov(pc, Operand(lr)); 101 __ mov(pc, Operand(lr));
102 102
103 CodeDesc desc; 103 CodeDesc desc;
104 assm.GetCode(&desc); 104 assm.GetCode(&desc);
105 Object* code = Heap::CreateCode( 105 Object* code = HEAP->CreateCode(
106 desc, 106 desc,
107 Code::ComputeFlags(Code::STUB), 107 Code::ComputeFlags(Code::STUB),
108 Handle<Object>(Heap::undefined_value()))->ToObjectChecked(); 108 Handle<Object>(HEAP->undefined_value()))->ToObjectChecked();
109 CHECK(code->IsCode()); 109 CHECK(code->IsCode());
110 #ifdef DEBUG 110 #ifdef DEBUG
111 Code::cast(code)->Print(); 111 Code::cast(code)->Print();
112 #endif 112 #endif
113 F1 f = FUNCTION_CAST<F1>(Code::cast(code)->entry()); 113 F1 f = FUNCTION_CAST<F1>(Code::cast(code)->entry());
114 int res = reinterpret_cast<int>(CALL_GENERATED_CODE(f, 100, 0, 0, 0, 0)); 114 int res = reinterpret_cast<int>(CALL_GENERATED_CODE(f, 100, 0, 0, 0, 0));
115 ::printf("f() = %d\n", res); 115 ::printf("f() = %d\n", res);
116 CHECK_EQ(5050, res); 116 CHECK_EQ(5050, res);
117 } 117 }
118 118
(...skipping 13 matching lines...) Expand all
132 __ mul(r0, r1, r0); 132 __ mul(r0, r1, r0);
133 __ sub(r1, r1, Operand(1)); 133 __ sub(r1, r1, Operand(1));
134 134
135 __ bind(&C); 135 __ bind(&C);
136 __ teq(r1, Operand(0, RelocInfo::NONE)); 136 __ teq(r1, Operand(0, RelocInfo::NONE));
137 __ b(ne, &L); 137 __ b(ne, &L);
138 __ mov(pc, Operand(lr)); 138 __ mov(pc, Operand(lr));
139 139
140 // some relocated stuff here, not executed 140 // some relocated stuff here, not executed
141 __ RecordComment("dead code, just testing relocations"); 141 __ RecordComment("dead code, just testing relocations");
142 __ mov(r0, Operand(Factory::true_value())); 142 __ mov(r0, Operand(FACTORY->true_value()));
143 __ RecordComment("dead code, just testing immediate operands"); 143 __ RecordComment("dead code, just testing immediate operands");
144 __ mov(r0, Operand(-1)); 144 __ mov(r0, Operand(-1));
145 __ mov(r0, Operand(0xFF000000)); 145 __ mov(r0, Operand(0xFF000000));
146 __ mov(r0, Operand(0xF0F0F0F0)); 146 __ mov(r0, Operand(0xF0F0F0F0));
147 __ mov(r0, Operand(0xFFF0FFFF)); 147 __ mov(r0, Operand(0xFFF0FFFF));
148 148
149 CodeDesc desc; 149 CodeDesc desc;
150 assm.GetCode(&desc); 150 assm.GetCode(&desc);
151 Object* code = Heap::CreateCode( 151 Object* code = HEAP->CreateCode(
152 desc, 152 desc,
153 Code::ComputeFlags(Code::STUB), 153 Code::ComputeFlags(Code::STUB),
154 Handle<Object>(Heap::undefined_value()))->ToObjectChecked(); 154 Handle<Object>(HEAP->undefined_value()))->ToObjectChecked();
155 CHECK(code->IsCode()); 155 CHECK(code->IsCode());
156 #ifdef DEBUG 156 #ifdef DEBUG
157 Code::cast(code)->Print(); 157 Code::cast(code)->Print();
158 #endif 158 #endif
159 F1 f = FUNCTION_CAST<F1>(Code::cast(code)->entry()); 159 F1 f = FUNCTION_CAST<F1>(Code::cast(code)->entry());
160 int res = reinterpret_cast<int>(CALL_GENERATED_CODE(f, 10, 0, 0, 0, 0)); 160 int res = reinterpret_cast<int>(CALL_GENERATED_CODE(f, 10, 0, 0, 0, 0));
161 ::printf("f() = %d\n", res); 161 ::printf("f() = %d\n", res);
162 CHECK_EQ(3628800, res); 162 CHECK_EQ(3628800, res);
163 } 163 }
164 164
(...skipping 24 matching lines...) Expand all
189 __ mov(r2, Operand(r2, LSL, 2)); 189 __ mov(r2, Operand(r2, LSL, 2));
190 __ strb(r2, MemOperand(r4, OFFSET_OF(T, c))); 190 __ strb(r2, MemOperand(r4, OFFSET_OF(T, c)));
191 __ ldrsh(r2, MemOperand(r4, OFFSET_OF(T, s))); 191 __ ldrsh(r2, MemOperand(r4, OFFSET_OF(T, s)));
192 __ add(r0, r2, Operand(r0)); 192 __ add(r0, r2, Operand(r0));
193 __ mov(r2, Operand(r2, ASR, 3)); 193 __ mov(r2, Operand(r2, ASR, 3));
194 __ strh(r2, MemOperand(r4, OFFSET_OF(T, s))); 194 __ strh(r2, MemOperand(r4, OFFSET_OF(T, s)));
195 __ ldm(ia_w, sp, r4.bit() | fp.bit() | pc.bit()); 195 __ ldm(ia_w, sp, r4.bit() | fp.bit() | pc.bit());
196 196
197 CodeDesc desc; 197 CodeDesc desc;
198 assm.GetCode(&desc); 198 assm.GetCode(&desc);
199 Object* code = Heap::CreateCode( 199 Object* code = HEAP->CreateCode(
200 desc, 200 desc,
201 Code::ComputeFlags(Code::STUB), 201 Code::ComputeFlags(Code::STUB),
202 Handle<Object>(Heap::undefined_value()))->ToObjectChecked(); 202 Handle<Object>(HEAP->undefined_value()))->ToObjectChecked();
203 CHECK(code->IsCode()); 203 CHECK(code->IsCode());
204 #ifdef DEBUG 204 #ifdef DEBUG
205 Code::cast(code)->Print(); 205 Code::cast(code)->Print();
206 #endif 206 #endif
207 F3 f = FUNCTION_CAST<F3>(Code::cast(code)->entry()); 207 F3 f = FUNCTION_CAST<F3>(Code::cast(code)->entry());
208 t.i = 100000; 208 t.i = 100000;
209 t.c = 10; 209 t.c = 10;
210 t.s = 1000; 210 t.s = 1000;
211 int res = reinterpret_cast<int>(CALL_GENERATED_CODE(f, &t, 0, 0, 0, 0)); 211 int res = reinterpret_cast<int>(CALL_GENERATED_CODE(f, &t, 0, 0, 0, 0));
212 ::printf("f() = %d\n", res); 212 ::printf("f() = %d\n", res);
(...skipping 25 matching lines...) Expand all
238 float y; 238 float y;
239 } T; 239 } T;
240 T t; 240 T t;
241 241
242 // Create a function that accepts &t, and loads, manipulates, and stores 242 // Create a function that accepts &t, and loads, manipulates, and stores
243 // the doubles and floats. 243 // the doubles and floats.
244 Assembler assm(NULL, 0); 244 Assembler assm(NULL, 0);
245 Label L, C; 245 Label L, C;
246 246
247 247
248 if (CpuFeatures::IsSupported(VFP3)) { 248 if (Isolate::Current()->cpu_features()->IsSupported(VFP3)) {
249 CpuFeatures::Scope scope(VFP3); 249 CpuFeatures::Scope scope(VFP3);
250 250
251 __ mov(ip, Operand(sp)); 251 __ mov(ip, Operand(sp));
252 __ stm(db_w, sp, r4.bit() | fp.bit() | lr.bit()); 252 __ stm(db_w, sp, r4.bit() | fp.bit() | lr.bit());
253 __ sub(fp, ip, Operand(4)); 253 __ sub(fp, ip, Operand(4));
254 254
255 __ mov(r4, Operand(r0)); 255 __ mov(r4, Operand(r0));
256 __ vldr(d6, r4, OFFSET_OF(T, a)); 256 __ vldr(d6, r4, OFFSET_OF(T, a));
257 __ vldr(d7, r4, OFFSET_OF(T, b)); 257 __ vldr(d7, r4, OFFSET_OF(T, b));
258 __ vadd(d5, d6, d7); 258 __ vadd(d5, d6, d7);
(...skipping 45 matching lines...) Expand 10 before | Expand all | Expand 10 after
304 __ vneg(d0, d1); 304 __ vneg(d0, d1);
305 __ vstr(d0, r4, OFFSET_OF(T, m)); 305 __ vstr(d0, r4, OFFSET_OF(T, m));
306 __ vldr(d1, r4, OFFSET_OF(T, n)); 306 __ vldr(d1, r4, OFFSET_OF(T, n));
307 __ vneg(d0, d1); 307 __ vneg(d0, d1);
308 __ vstr(d0, r4, OFFSET_OF(T, n)); 308 __ vstr(d0, r4, OFFSET_OF(T, n));
309 309
310 __ ldm(ia_w, sp, r4.bit() | fp.bit() | pc.bit()); 310 __ ldm(ia_w, sp, r4.bit() | fp.bit() | pc.bit());
311 311
312 CodeDesc desc; 312 CodeDesc desc;
313 assm.GetCode(&desc); 313 assm.GetCode(&desc);
314 Object* code = Heap::CreateCode( 314 Object* code = HEAP->CreateCode(
315 desc, 315 desc,
316 Code::ComputeFlags(Code::STUB), 316 Code::ComputeFlags(Code::STUB),
317 Handle<Object>(Heap::undefined_value()))->ToObjectChecked(); 317 Handle<Object>(HEAP->undefined_value()))->ToObjectChecked();
318 CHECK(code->IsCode()); 318 CHECK(code->IsCode());
319 #ifdef DEBUG 319 #ifdef DEBUG
320 Code::cast(code)->Print(); 320 Code::cast(code)->Print();
321 #endif 321 #endif
322 F3 f = FUNCTION_CAST<F3>(Code::cast(code)->entry()); 322 F3 f = FUNCTION_CAST<F3>(Code::cast(code)->entry());
323 t.a = 1.5; 323 t.a = 1.5;
324 t.b = 2.75; 324 t.b = 2.75;
325 t.c = 17.17; 325 t.c = 17.17;
326 t.d = 0.0; 326 t.d = 0.0;
327 t.e = 0.0; 327 t.e = 0.0;
(...skipping 24 matching lines...) Expand all
352 } 352 }
353 353
354 354
355 TEST(5) { 355 TEST(5) {
356 // Test the ARMv7 bitfield instructions. 356 // Test the ARMv7 bitfield instructions.
357 InitializeVM(); 357 InitializeVM();
358 v8::HandleScope scope; 358 v8::HandleScope scope;
359 359
360 Assembler assm(NULL, 0); 360 Assembler assm(NULL, 0);
361 361
362 if (CpuFeatures::IsSupported(ARMv7)) { 362 if (Isolate::Current()->cpu_features()->IsSupported(ARMv7)) {
363 CpuFeatures::Scope scope(ARMv7); 363 CpuFeatures::Scope scope(ARMv7);
364 // On entry, r0 = 0xAAAAAAAA = 0b10..10101010. 364 // On entry, r0 = 0xAAAAAAAA = 0b10..10101010.
365 __ ubfx(r0, r0, 1, 12); // 0b00..010101010101 = 0x555 365 __ ubfx(r0, r0, 1, 12); // 0b00..010101010101 = 0x555
366 __ sbfx(r0, r0, 0, 5); // 0b11..111111110101 = -11 366 __ sbfx(r0, r0, 0, 5); // 0b11..111111110101 = -11
367 __ bfc(r0, 1, 3); // 0b11..111111110001 = -15 367 __ bfc(r0, 1, 3); // 0b11..111111110001 = -15
368 __ mov(r1, Operand(7)); 368 __ mov(r1, Operand(7));
369 __ bfi(r0, r1, 3, 3); // 0b11..111111111001 = -7 369 __ bfi(r0, r1, 3, 3); // 0b11..111111111001 = -7
370 __ mov(pc, Operand(lr)); 370 __ mov(pc, Operand(lr));
371 371
372 CodeDesc desc; 372 CodeDesc desc;
373 assm.GetCode(&desc); 373 assm.GetCode(&desc);
374 Object* code = Heap::CreateCode( 374 Object* code = HEAP->CreateCode(
375 desc, 375 desc,
376 Code::ComputeFlags(Code::STUB), 376 Code::ComputeFlags(Code::STUB),
377 Handle<Object>(Heap::undefined_value()))->ToObjectChecked(); 377 Handle<Object>(HEAP->undefined_value()))->ToObjectChecked();
378 CHECK(code->IsCode()); 378 CHECK(code->IsCode());
379 #ifdef DEBUG 379 #ifdef DEBUG
380 Code::cast(code)->Print(); 380 Code::cast(code)->Print();
381 #endif 381 #endif
382 F1 f = FUNCTION_CAST<F1>(Code::cast(code)->entry()); 382 F1 f = FUNCTION_CAST<F1>(Code::cast(code)->entry());
383 int res = reinterpret_cast<int>( 383 int res = reinterpret_cast<int>(
384 CALL_GENERATED_CODE(f, 0xAAAAAAAA, 0, 0, 0, 0)); 384 CALL_GENERATED_CODE(f, 0xAAAAAAAA, 0, 0, 0, 0));
385 ::printf("f() = %d\n", res); 385 ::printf("f() = %d\n", res);
386 CHECK_EQ(-7, res); 386 CHECK_EQ(-7, res);
387 } 387 }
388 } 388 }
389 389
390 390
391 TEST(6) { 391 TEST(6) {
392 // Test saturating instructions. 392 // Test saturating instructions.
393 InitializeVM(); 393 InitializeVM();
394 v8::HandleScope scope; 394 v8::HandleScope scope;
395 395
396 Assembler assm(NULL, 0); 396 Assembler assm(NULL, 0);
397 397
398 if (CpuFeatures::IsSupported(ARMv7)) { 398 if (Isolate::Current()->cpu_features()->IsSupported(ARMv7)) {
399 CpuFeatures::Scope scope(ARMv7); 399 CpuFeatures::Scope scope(ARMv7);
400 __ usat(r1, 8, Operand(r0)); // Sat 0xFFFF to 0-255 = 0xFF. 400 __ usat(r1, 8, Operand(r0)); // Sat 0xFFFF to 0-255 = 0xFF.
401 __ usat(r2, 12, Operand(r0, ASR, 9)); // Sat (0xFFFF>>9) to 0-4095 = 0x7F. 401 __ usat(r2, 12, Operand(r0, ASR, 9)); // Sat (0xFFFF>>9) to 0-4095 = 0x7F.
402 __ usat(r3, 1, Operand(r0, LSL, 16)); // Sat (0xFFFF<<16) to 0-1 = 0x0. 402 __ usat(r3, 1, Operand(r0, LSL, 16)); // Sat (0xFFFF<<16) to 0-1 = 0x0.
403 __ add(r0, r1, Operand(r2)); 403 __ add(r0, r1, Operand(r2));
404 __ add(r0, r0, Operand(r3)); 404 __ add(r0, r0, Operand(r3));
405 __ mov(pc, Operand(lr)); 405 __ mov(pc, Operand(lr));
406 406
407 CodeDesc desc; 407 CodeDesc desc;
408 assm.GetCode(&desc); 408 assm.GetCode(&desc);
409 Object* code = Heap::CreateCode( 409 Object* code = HEAP->CreateCode(
410 desc, 410 desc,
411 Code::ComputeFlags(Code::STUB), 411 Code::ComputeFlags(Code::STUB),
412 Handle<Object>(Heap::undefined_value()))->ToObjectChecked(); 412 Handle<Object>(HEAP->undefined_value()))->ToObjectChecked();
413 CHECK(code->IsCode()); 413 CHECK(code->IsCode());
414 #ifdef DEBUG 414 #ifdef DEBUG
415 Code::cast(code)->Print(); 415 Code::cast(code)->Print();
416 #endif 416 #endif
417 F1 f = FUNCTION_CAST<F1>(Code::cast(code)->entry()); 417 F1 f = FUNCTION_CAST<F1>(Code::cast(code)->entry());
418 int res = reinterpret_cast<int>( 418 int res = reinterpret_cast<int>(
419 CALL_GENERATED_CODE(f, 0xFFFF, 0, 0, 0, 0)); 419 CALL_GENERATED_CODE(f, 0xFFFF, 0, 0, 0, 0));
420 ::printf("f() = %d\n", res); 420 ::printf("f() = %d\n", res);
421 CHECK_EQ(382, res); 421 CHECK_EQ(382, res);
422 } 422 }
423 } 423 }
424 424
425 425
426 enum VCVTTypes { 426 enum VCVTTypes {
427 s32_f64, 427 s32_f64,
428 u32_f64 428 u32_f64
429 }; 429 };
430 430
431 static void TestRoundingMode(VCVTTypes types, 431 static void TestRoundingMode(VCVTTypes types,
432 VFPRoundingMode mode, 432 VFPRoundingMode mode,
433 double value, 433 double value,
434 int expected, 434 int expected,
435 bool expected_exception = false) { 435 bool expected_exception = false) {
436 InitializeVM(); 436 InitializeVM();
437 v8::HandleScope scope; 437 v8::HandleScope scope;
438 438
439 Assembler assm(NULL, 0); 439 Assembler assm(NULL, 0);
440 440
441 if (CpuFeatures::IsSupported(VFP3)) { 441 if (Isolate::Current()->cpu_features()->IsSupported(VFP3)) {
442 CpuFeatures::Scope scope(VFP3); 442 CpuFeatures::Scope scope(VFP3);
443 443
444 Label wrong_exception; 444 Label wrong_exception;
445 445
446 __ vmrs(r1); 446 __ vmrs(r1);
447 // Set custom FPSCR. 447 // Set custom FPSCR.
448 __ bic(r2, r1, Operand(kVFPRoundingModeMask | kVFPExceptionMask)); 448 __ bic(r2, r1, Operand(kVFPRoundingModeMask | kVFPExceptionMask));
449 __ orr(r2, r2, Operand(mode)); 449 __ orr(r2, r2, Operand(mode));
450 __ vmsr(r2); 450 __ vmsr(r2);
451 451
(...skipping 23 matching lines...) Expand all
475 __ mov(pc, Operand(lr)); 475 __ mov(pc, Operand(lr));
476 476
477 // The exception behaviour is not what we expected. 477 // The exception behaviour is not what we expected.
478 // Load a special value and return. 478 // Load a special value and return.
479 __ bind(&wrong_exception); 479 __ bind(&wrong_exception);
480 __ mov(r0, Operand(11223344)); 480 __ mov(r0, Operand(11223344));
481 __ mov(pc, Operand(lr)); 481 __ mov(pc, Operand(lr));
482 482
483 CodeDesc desc; 483 CodeDesc desc;
484 assm.GetCode(&desc); 484 assm.GetCode(&desc);
485 Object* code = Heap::CreateCode( 485 Object* code = HEAP->CreateCode(
486 desc, 486 desc,
487 Code::ComputeFlags(Code::STUB), 487 Code::ComputeFlags(Code::STUB),
488 Handle<Object>(Heap::undefined_value()))->ToObjectChecked(); 488 Handle<Object>(HEAP->undefined_value()))->ToObjectChecked();
489 CHECK(code->IsCode()); 489 CHECK(code->IsCode());
490 #ifdef DEBUG 490 #ifdef DEBUG
491 Code::cast(code)->Print(); 491 Code::cast(code)->Print();
492 #endif 492 #endif
493 F1 f = FUNCTION_CAST<F1>(Code::cast(code)->entry()); 493 F1 f = FUNCTION_CAST<F1>(Code::cast(code)->entry());
494 int res = reinterpret_cast<int>( 494 int res = reinterpret_cast<int>(
495 CALL_GENERATED_CODE(f, 0, 0, 0, 0, 0)); 495 CALL_GENERATED_CODE(f, 0, 0, 0, 0, 0));
496 ::printf("res = %d\n", res); 496 ::printf("res = %d\n", res);
497 CHECK_EQ(expected, res); 497 CHECK_EQ(expected, res);
498 } 498 }
(...skipping 103 matching lines...) Expand 10 before | Expand all | Expand 10 after
602 TestRoundingMode(u32_f64, RN, static_cast<double>(kMaxInt), kMaxInt); 602 TestRoundingMode(u32_f64, RN, static_cast<double>(kMaxInt), kMaxInt);
603 TestRoundingMode(u32_f64, RN, (kMaxInt + 0.49), kMaxInt); 603 TestRoundingMode(u32_f64, RN, (kMaxInt + 0.49), kMaxInt);
604 TestRoundingMode(u32_f64, RN, (kMaxInt + 0.5), 604 TestRoundingMode(u32_f64, RN, (kMaxInt + 0.5),
605 static_cast<uint32_t>(kMaxInt) + 1); 605 static_cast<uint32_t>(kMaxInt) + 1);
606 TestRoundingMode(u32_f64, RN, (kMaxUInt + 0.49), kMaxUInt); 606 TestRoundingMode(u32_f64, RN, (kMaxUInt + 0.49), kMaxUInt);
607 TestRoundingMode(u32_f64, RN, (kMaxUInt + 0.5), kMaxUInt, true); 607 TestRoundingMode(u32_f64, RN, (kMaxUInt + 0.5), kMaxUInt, true);
608 TestRoundingMode(u32_f64, RN, (kMaxUInt + 1.0), kMaxUInt, true); 608 TestRoundingMode(u32_f64, RN, (kMaxUInt + 1.0), kMaxUInt, true);
609 } 609 }
610 610
611 #undef __ 611 #undef __
OLDNEW
« no previous file with comments | « test/cctest/test-api.cc ('k') | test/cctest/test-assembler-ia32.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698