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

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

Issue 11092090: Inline indexed load and store of typed array float64. (Closed) Base URL: http://dart.googlecode.com/svn/branches/bleeding_edge/dart/
Patch Set: Created 8 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
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" // Needed here to get TARGET_ARCH_XXX. 5 #include "vm/globals.h" // Needed here to get TARGET_ARCH_XXX.
6 6
7 #include "vm/flow_graph_compiler.h" 7 #include "vm/flow_graph_compiler.h"
8 8
9 #include "vm/dart_entry.h" 9 #include "vm/dart_entry.h"
10 #include "vm/debugger.h" 10 #include "vm/debugger.h"
(...skipping 878 matching lines...) Expand 10 before | Expand all | Expand 10 after
889 case BELOW_EQUAL: return unsigned_left <= unsigned_right; 889 case BELOW_EQUAL: return unsigned_left <= unsigned_right;
890 case ABOVE: return unsigned_left > unsigned_right; 890 case ABOVE: return unsigned_left > unsigned_right;
891 case ABOVE_EQUAL: return unsigned_left >= unsigned_right; 891 case ABOVE_EQUAL: return unsigned_left >= unsigned_right;
892 default: 892 default:
893 UNIMPLEMENTED(); 893 UNIMPLEMENTED();
894 return false; 894 return false;
895 } 895 }
896 } 896 }
897 897
898 898
899 FieldAddress FlowGraphCompiler::ElementAddressForIntIndex(intptr_t cid,
900 Register array,
901 intptr_t offset) {
902 switch (cid) {
903 case kArrayCid:
904 case kGrowableObjectArrayCid:
905 case kImmutableArrayCid: {
906 const intptr_t disp = offset * kWordSize + sizeof(RawArray);
907 ASSERT(Utils::IsInt(31, disp));
908 return FieldAddress(array, disp);
909 }
910 case kFloat64ArrayCid: {
911 const intptr_t disp =
912 offset * (1 << TIMES_8) + Float64Array::data_offset();
Florian Schneider 2012/10/15 09:40:25 Alternatively use kDoubleSize instead of 1 << TIME
srdjan 2012/10/15 16:53:13 Done.
913 ASSERT(Utils::IsInt(31, disp));
914 return FieldAddress(array, disp);
915 }
916 default:
917 UNIMPLEMENTED();
918 return FieldAddress(SPREG, 0);
919 }
920 }
921
899 } // namespace dart 922 } // namespace dart
OLDNEW
« no previous file with comments | « no previous file | runtime/vm/flow_graph_compiler_ia32.h » ('j') | runtime/vm/flow_graph_compiler_ia32.cc » ('J')

Powered by Google App Engine
This is Rietveld 408576698