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

Side by Side Diff: src/ia32/macro-assembler-ia32.h

Issue 90643003: Experimental implementation: Exposing SIMD instructions into JavaScript Base URL: https://v8.googlecode.com/svn/branches/bleeding_edge
Patch Set: Created 7 years 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 | « src/ia32/lithium-ia32.cc ('k') | src/ia32/macro-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 2012 the V8 project authors. All rights reserved. 1 // Copyright 2012 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 644 matching lines...) Expand 10 before | Expand all | Expand 10 after
655 void UndoAllocationInNewSpace(Register object); 655 void UndoAllocationInNewSpace(Register object);
656 656
657 // Allocate a heap number in new space with undefined value. The 657 // Allocate a heap number in new space with undefined value. The
658 // register scratch2 can be passed as no_reg; the others must be 658 // register scratch2 can be passed as no_reg; the others must be
659 // valid registers. Returns tagged pointer in result register, or 659 // valid registers. Returns tagged pointer in result register, or
660 // jumps to gc_required if new space is full. 660 // jumps to gc_required if new space is full.
661 void AllocateHeapNumber(Register result, 661 void AllocateHeapNumber(Register result,
662 Register scratch1, 662 Register scratch1,
663 Register scratch2, 663 Register scratch2,
664 Label* gc_required); 664 Label* gc_required);
665 void AllocateFloat32x4(Register result,
666 Register scratch,
667 Label* gc_required);
668 void AllocateInt32x4(Register result,
669 Register scratch,
670 Label* gc_required);
665 671
666 // Allocate a sequential string. All the header fields of the string object 672 // Allocate a sequential string. All the header fields of the string object
667 // are initialized. 673 // are initialized.
668 void AllocateTwoByteString(Register result, 674 void AllocateTwoByteString(Register result,
669 Register length, 675 Register length,
670 Register scratch1, 676 Register scratch1,
671 Register scratch2, 677 Register scratch2,
672 Register scratch3, 678 Register scratch3,
673 Label* gc_required); 679 Label* gc_required);
674 void AllocateAsciiString(Register result, 680 void AllocateAsciiString(Register result,
(...skipping 230 matching lines...) Expand 10 before | Expand all | Expand 10 after
905 // Verify restrictions about code generated in stubs. 911 // Verify restrictions about code generated in stubs.
906 void set_generating_stub(bool value) { generating_stub_ = value; } 912 void set_generating_stub(bool value) { generating_stub_ = value; }
907 bool generating_stub() { return generating_stub_; } 913 bool generating_stub() { return generating_stub_; }
908 void set_allow_stub_calls(bool value) { allow_stub_calls_ = value; } 914 void set_allow_stub_calls(bool value) { allow_stub_calls_ = value; }
909 bool allow_stub_calls() { return allow_stub_calls_; } 915 bool allow_stub_calls() { return allow_stub_calls_; }
910 void set_has_frame(bool value) { has_frame_ = value; } 916 void set_has_frame(bool value) { has_frame_ = value; }
911 bool has_frame() { return has_frame_; } 917 bool has_frame() { return has_frame_; }
912 inline bool AllowThisStubCall(CodeStub* stub); 918 inline bool AllowThisStubCall(CodeStub* stub);
913 919
914 // --------------------------------------------------------------------------- 920 // ---------------------------------------------------------------------------
921 // SIMD macros.
922 void absps(XMMRegister dst);
923 void negateps(XMMRegister dst);
924 void notps(XMMRegister dst);
925 void pnegd(XMMRegister dst);
926
927 // ---------------------------------------------------------------------------
915 // String utilities. 928 // String utilities.
916 929
917 // Generate code to do a lookup in the number string cache. If the number in 930 // Generate code to do a lookup in the number string cache. If the number in
918 // the register object is found in the cache the generated code falls through 931 // the register object is found in the cache the generated code falls through
919 // with the result in the result register. The object and the result register 932 // with the result in the result register. The object and the result register
920 // can be the same. If the number is not found in the cache the code jumps to 933 // can be the same. If the number is not found in the cache the code jumps to
921 // the label not_found with only the content of register object unchanged. 934 // the label not_found with only the content of register object unchanged.
922 void LookupNumberStringCache(Register object, 935 void LookupNumberStringCache(Register object,
923 Register result, 936 Register result,
924 Register scratch1, 937 Register scratch1,
(...skipping 204 matching lines...) Expand 10 before | Expand all | Expand 10 after
1129 } \ 1142 } \
1130 masm-> 1143 masm->
1131 #else 1144 #else
1132 #define ACCESS_MASM(masm) masm-> 1145 #define ACCESS_MASM(masm) masm->
1133 #endif 1146 #endif
1134 1147
1135 1148
1136 } } // namespace v8::internal 1149 } } // namespace v8::internal
1137 1150
1138 #endif // V8_IA32_MACRO_ASSEMBLER_IA32_H_ 1151 #endif // V8_IA32_MACRO_ASSEMBLER_IA32_H_
OLDNEW
« no previous file with comments | « src/ia32/lithium-ia32.cc ('k') | src/ia32/macro-assembler-ia32.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698