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

Side by Side Diff: src/mips/assembler-mips.h

Issue 1779713009: Implement optional turbofan UnalignedLoad and UnalignedStore operators (Closed) Base URL: https://chromium.googlesource.com/v8/v8.git@master
Patch Set: Unaligned access simulate using load/shift/or and store/shift/and Created 4 years, 8 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
OLDNEW
1 // Copyright (c) 1994-2006 Sun Microsystems Inc. 1 // Copyright (c) 1994-2006 Sun Microsystems Inc.
2 // All Rights Reserved. 2 // All Rights Reserved.
3 // 3 //
4 // Redistribution and use in source and binary forms, with or without 4 // Redistribution and use in source and binary forms, with or without
5 // modification, are permitted provided that the following conditions are 5 // modification, are permitted provided that the following conditions are
6 // met: 6 // met:
7 // 7 //
8 // - Redistributions of source code must retain the above copyright notice, 8 // - Redistributions of source code must retain the above copyright notice,
9 // this list of conditions and the following disclaimer. 9 // this list of conditions and the following disclaimer.
10 // 10 //
(...skipping 1144 matching lines...) Expand 10 before | Expand all | Expand 10 after
1155 // No embedded constant pool support. 1155 // No embedded constant pool support.
1156 UNREACHABLE(); 1156 UNREACHABLE();
1157 } 1157 }
1158 1158
1159 bool IsPrevInstrCompactBranch() { return prev_instr_compact_branch_; } 1159 bool IsPrevInstrCompactBranch() { return prev_instr_compact_branch_; }
1160 1160
1161 protected: 1161 protected:
1162 // Load Scaled Address instruction. 1162 // Load Scaled Address instruction.
1163 void lsa(Register rd, Register rt, Register rs, uint8_t sa); 1163 void lsa(Register rd, Register rt, Register rs, uint8_t sa);
1164 1164
1165 // Helpers.
1166 void LoadRegPlusOffsetToAt(const MemOperand& src);
1167
1165 // Relocation for a type-recording IC has the AST id added to it. This 1168 // Relocation for a type-recording IC has the AST id added to it. This
1166 // member variable is a way to pass the information from the call site to 1169 // member variable is a way to pass the information from the call site to
1167 // the relocation info. 1170 // the relocation info.
1168 TypeFeedbackId recorded_ast_id_; 1171 TypeFeedbackId recorded_ast_id_;
1169 1172
1170 int32_t buffer_space() const { return reloc_info_writer.pos() - pc_; } 1173 int32_t buffer_space() const { return reloc_info_writer.pos() - pc_; }
1171 1174
1172 // Decode branch instruction at pos and return branch target pos. 1175 // Decode branch instruction at pos and return branch target pos.
1173 int target_at(int pos, bool is_internal); 1176 int target_at(int pos, bool is_internal);
1174 1177
(...skipping 177 matching lines...) Expand 10 before | Expand all | Expand 10 after
1352 CompactBranchType is_compact_branch = CompactBranchType::NO); 1355 CompactBranchType is_compact_branch = CompactBranchType::NO);
1353 void GenInstrImmediate(Opcode opcode, Register rs, uint32_t offset21); 1356 void GenInstrImmediate(Opcode opcode, Register rs, uint32_t offset21);
1354 void GenInstrImmediate( 1357 void GenInstrImmediate(
1355 Opcode opcode, int32_t offset26, 1358 Opcode opcode, int32_t offset26,
1356 CompactBranchType is_compact_branch = CompactBranchType::NO); 1359 CompactBranchType is_compact_branch = CompactBranchType::NO);
1357 1360
1358 1361
1359 void GenInstrJump(Opcode opcode, 1362 void GenInstrJump(Opcode opcode,
1360 uint32_t address); 1363 uint32_t address);
1361 1364
1362 // Helpers.
1363 void LoadRegPlusOffsetToAt(const MemOperand& src);
1364 1365
1365 // Labels. 1366 // Labels.
1366 void print(Label* L); 1367 void print(Label* L);
1367 void bind_to(Label* L, int pos); 1368 void bind_to(Label* L, int pos);
1368 void next(Label* L, bool is_internal); 1369 void next(Label* L, bool is_internal);
1369 1370
1370 // One trampoline consists of: 1371 // One trampoline consists of:
1371 // - space for trampoline slots, 1372 // - space for trampoline slots,
1372 // - space for labels. 1373 // - space for labels.
1373 // 1374 //
(...skipping 87 matching lines...) Expand 10 before | Expand all | Expand 10 after
1461 public: 1462 public:
1462 explicit EnsureSpace(Assembler* assembler) { 1463 explicit EnsureSpace(Assembler* assembler) {
1463 assembler->CheckBuffer(); 1464 assembler->CheckBuffer();
1464 } 1465 }
1465 }; 1466 };
1466 1467
1467 } // namespace internal 1468 } // namespace internal
1468 } // namespace v8 1469 } // namespace v8
1469 1470
1470 #endif // V8_ARM_ASSEMBLER_MIPS_H_ 1471 #endif // V8_ARM_ASSEMBLER_MIPS_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698