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

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

Issue 190763012: A64: Implement and use FillFields (Closed) Base URL: https://v8.googlecode.com/svn/branches/bleeding_edge
Patch Set: Address Ulan's comments Created 6 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 | « src/a64/lithium-codegen-a64.cc ('k') | src/a64/macro-assembler-a64.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 2013 the V8 project authors. All rights reserved. 1 // Copyright 2013 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 930 matching lines...) Expand 10 before | Expand all | Expand 10 after
941 // The 'temps' list is a list of X registers which can be used for scratch 941 // The 'temps' list is a list of X registers which can be used for scratch
942 // values. The temps list must include at least one register. 942 // values. The temps list must include at least one register.
943 // 943 //
944 // Currently, CopyFields cannot make use of more than three registers from 944 // Currently, CopyFields cannot make use of more than three registers from
945 // the 'temps' list. 945 // the 'temps' list.
946 // 946 //
947 // CopyFields expects to be able to take at least two registers from 947 // CopyFields expects to be able to take at least two registers from
948 // MacroAssembler::TmpList(). 948 // MacroAssembler::TmpList().
949 void CopyFields(Register dst, Register src, CPURegList temps, unsigned count); 949 void CopyFields(Register dst, Register src, CPURegList temps, unsigned count);
950 950
951 // Starting at address in dst, initialize field_count 64-bit fields with
952 // 64-bit value in register filler. Register dst is corrupted.
953 void FillFields(Register dst,
954 Register field_count,
955 Register filler);
956
951 // Copies a number of bytes from src to dst. All passed registers are 957 // Copies a number of bytes from src to dst. All passed registers are
952 // clobbered. On exit src and dst will point to the place just after where the 958 // clobbered. On exit src and dst will point to the place just after where the
953 // last byte was read or written and length will be zero. Hint may be used to 959 // last byte was read or written and length will be zero. Hint may be used to
954 // determine which is the most efficient algorithm to use for copying. 960 // determine which is the most efficient algorithm to use for copying.
955 void CopyBytes(Register dst, 961 void CopyBytes(Register dst,
956 Register src, 962 Register src,
957 Register length, 963 Register length,
958 Register scratch, 964 Register scratch,
959 CopyHint hint = kCopyUnknown); 965 CopyHint hint = kCopyUnknown);
960 966
961 // Initialize fields with filler values. Fields starting at start_offset not
962 // including end_offset are overwritten with the value in filler. At the end
963 // of the loop, start_offset takes the value of end_offset.
964 void InitializeFieldsWithFiller(Register start_offset,
965 Register end_offset,
966 Register filler);
967
968 // ---- String Utilities ---- 967 // ---- String Utilities ----
969 968
970 969
971 // Jump to label if either object is not a sequential ASCII string. 970 // Jump to label if either object is not a sequential ASCII string.
972 // Optionally perform a smi check on the objects first. 971 // Optionally perform a smi check on the objects first.
973 void JumpIfEitherIsNotSequentialAsciiStrings( 972 void JumpIfEitherIsNotSequentialAsciiStrings(
974 Register first, 973 Register first,
975 Register second, 974 Register second,
976 Register scratch1, 975 Register scratch1,
977 Register scratch2, 976 Register scratch2,
(...skipping 1296 matching lines...) Expand 10 before | Expand all | Expand 10 after
2274 #error "Unsupported option" 2273 #error "Unsupported option"
2275 #define CODE_COVERAGE_STRINGIFY(x) #x 2274 #define CODE_COVERAGE_STRINGIFY(x) #x
2276 #define CODE_COVERAGE_TOSTRING(x) CODE_COVERAGE_STRINGIFY(x) 2275 #define CODE_COVERAGE_TOSTRING(x) CODE_COVERAGE_STRINGIFY(x)
2277 #define __FILE_LINE__ __FILE__ ":" CODE_COVERAGE_TOSTRING(__LINE__) 2276 #define __FILE_LINE__ __FILE__ ":" CODE_COVERAGE_TOSTRING(__LINE__)
2278 #define ACCESS_MASM(masm) masm->stop(__FILE_LINE__); masm-> 2277 #define ACCESS_MASM(masm) masm->stop(__FILE_LINE__); masm->
2279 #else 2278 #else
2280 #define ACCESS_MASM(masm) masm-> 2279 #define ACCESS_MASM(masm) masm->
2281 #endif 2280 #endif
2282 2281
2283 #endif // V8_A64_MACRO_ASSEMBLER_A64_H_ 2282 #endif // V8_A64_MACRO_ASSEMBLER_A64_H_
OLDNEW
« no previous file with comments | « src/a64/lithium-codegen-a64.cc ('k') | src/a64/macro-assembler-a64.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698