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

Side by Side Diff: runtime/vm/assembler_ia32_test.cc

Issue 648613006: Implement bigint absAdd, absSub, mulAdd, sqrAdd, estQuotientDigit intrinsics, (Closed) Base URL: http://dart.googlecode.com/svn/branches/bleeding_edge/dart/
Patch Set: Created 6 years, 2 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 | « runtime/vm/assembler_ia32.cc ('k') | runtime/vm/assembler_x64.h » ('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 (c) 2012, the Dart project authors. Please see the AUTHORS file 1 // Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file
2 // for details. All rights reserved. Use of this source code is governed by a 2 // for details. All rights reserved. Use of this source code is governed by a
3 // BSD-style license that can be found in the LICENSE file. 3 // BSD-style license that can be found in the LICENSE file.
4 4
5 #include "vm/globals.h" 5 #include "vm/globals.h"
6 #if defined(TARGET_ARCH_IA32) 6 #if defined(TARGET_ARCH_IA32)
7 7
8 #include "vm/assembler.h" 8 #include "vm/assembler.h"
9 #include "vm/cpu.h" 9 #include "vm/cpu.h"
10 #include "vm/os.h" 10 #include "vm/os.h"
(...skipping 534 matching lines...) Expand 10 before | Expand all | Expand 10 after
545 __ movl(EAX, Immediate(0)); 545 __ movl(EAX, Immediate(0));
546 __ movl(Address(EAX, 0), EAX); 546 __ movl(Address(EAX, 0), EAX);
547 __ Bind(&donetest13); 547 __ Bind(&donetest13);
548 548
549 Label donetest14; 549 Label donetest14;
550 __ subl(ESP, Immediate(kWordSize)); 550 __ subl(ESP, Immediate(kWordSize));
551 __ movl(Address(ESP, 0), Immediate(0x80000000)); 551 __ movl(Address(ESP, 0), Immediate(0x80000000));
552 __ movl(EAX, Immediate(0)); 552 __ movl(EAX, Immediate(0));
553 __ movl(ECX, Immediate(3)); 553 __ movl(ECX, Immediate(3));
554 __ sarl(Address(ESP, 0), ECX); 554 __ sarl(Address(ESP, 0), ECX);
555 __ shrd(Address(ESP, 0), EAX); 555 __ shrdl(Address(ESP, 0), EAX);
556 __ cmpl(Address(ESP, 0), Immediate(0x1e000000)); 556 __ cmpl(Address(ESP, 0), Immediate(0x1e000000));
557 __ j(EQUAL, &donetest14); 557 __ j(EQUAL, &donetest14);
558 __ int3(); 558 __ int3();
559 __ Bind(&donetest14); 559 __ Bind(&donetest14);
560 __ addl(ESP, Immediate(kWordSize)); 560 __ addl(ESP, Immediate(kWordSize));
561 561
562 Label donetest15; 562 Label donetest15;
563 __ subl(ESP, Immediate(kWordSize)); 563 __ subl(ESP, Immediate(kWordSize));
564 __ movl(Address(ESP, 0), Immediate(0xFF000000)); 564 __ movl(Address(ESP, 0), Immediate(0xFF000000));
565 __ movl(EAX, Immediate(-1)); 565 __ movl(EAX, Immediate(-1));
566 __ movl(ECX, Immediate(2)); 566 __ movl(ECX, Immediate(2));
567 __ shll(Address(ESP, 0), ECX); 567 __ shll(Address(ESP, 0), ECX);
568 __ shld(Address(ESP, 0), EAX); 568 __ shldl(Address(ESP, 0), EAX);
569 __ cmpl(Address(ESP, 0), Immediate(0xF0000003)); 569 __ cmpl(Address(ESP, 0), Immediate(0xF0000003));
570 __ j(EQUAL, &donetest15); 570 __ j(EQUAL, &donetest15);
571 __ int3(); 571 __ int3();
572 __ Bind(&donetest15); 572 __ Bind(&donetest15);
573 __ addl(ESP, Immediate(kWordSize)); 573 __ addl(ESP, Immediate(kWordSize));
574 574
575 Label donetest16; 575 Label donetest16;
576 __ movl(EDX, Immediate(0x80000000)); 576 __ movl(EDX, Immediate(0x80000000));
577 __ movl(EAX, Immediate(0)); 577 __ movl(EAX, Immediate(0));
578 __ movl(ECX, Immediate(3)); 578 __ movl(ECX, Immediate(3));
579 __ sarl(EDX, Immediate(3)); 579 __ sarl(EDX, Immediate(3));
580 __ shrd(EDX, EAX, Immediate(3)); 580 __ shrdl(EDX, EAX, Immediate(3));
581 __ cmpl(EDX, Immediate(0x1e000000)); 581 __ cmpl(EDX, Immediate(0x1e000000));
582 __ j(EQUAL, &donetest16); 582 __ j(EQUAL, &donetest16);
583 __ int3(); 583 __ int3();
584 __ Bind(&donetest16); 584 __ Bind(&donetest16);
585 585
586 Label donetest17; 586 Label donetest17;
587 __ movl(EDX, Immediate(0xFF000000)); 587 __ movl(EDX, Immediate(0xFF000000));
588 __ movl(EAX, Immediate(-1)); 588 __ movl(EAX, Immediate(-1));
589 __ shll(EDX, Immediate(2)); 589 __ shll(EDX, Immediate(2));
590 __ shld(EDX, EAX, Immediate(2)); 590 __ shldl(EDX, EAX, Immediate(2));
591 __ cmpl(EDX, Immediate(0xF0000003)); 591 __ cmpl(EDX, Immediate(0xF0000003));
592 __ j(EQUAL, &donetest17); 592 __ j(EQUAL, &donetest17);
593 __ int3(); 593 __ int3();
594 __ Bind(&donetest17); 594 __ Bind(&donetest17);
595 595
596 __ movl(EAX, Immediate(0)); 596 __ movl(EAX, Immediate(0));
597 __ ret(); 597 __ ret();
598 } 598 }
599 599
600 600
(...skipping 2794 matching lines...) Expand 10 before | Expand all | Expand 10 after
3395 3395
3396 ASSEMBLER_TEST_RUN(BitTest, test) { 3396 ASSEMBLER_TEST_RUN(BitTest, test) {
3397 typedef int (*BitTest)(); 3397 typedef int (*BitTest)();
3398 EXPECT_EQ(1, reinterpret_cast<BitTest>(test->entry())()); 3398 EXPECT_EQ(1, reinterpret_cast<BitTest>(test->entry())());
3399 } 3399 }
3400 3400
3401 3401
3402 } // namespace dart 3402 } // namespace dart
3403 3403
3404 #endif // defined TARGET_ARCH_IA32 3404 #endif // defined TARGET_ARCH_IA32
OLDNEW
« no previous file with comments | « runtime/vm/assembler_ia32.cc ('k') | runtime/vm/assembler_x64.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698