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

Side by Side Diff: src/mips64/assembler-mips64.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 1199 matching lines...) Expand 10 before | Expand all | Expand 10 after
1210 UNREACHABLE(); 1210 UNREACHABLE();
1211 } 1211 }
1212 1212
1213 bool IsPrevInstrCompactBranch() { return prev_instr_compact_branch_; } 1213 bool IsPrevInstrCompactBranch() { return prev_instr_compact_branch_; }
1214 1214
1215 protected: 1215 protected:
1216 // Load Scaled Address instructions. 1216 // Load Scaled Address instructions.
1217 void lsa(Register rd, Register rt, Register rs, uint8_t sa); 1217 void lsa(Register rd, Register rt, Register rs, uint8_t sa);
1218 void dlsa(Register rd, Register rt, Register rs, uint8_t sa); 1218 void dlsa(Register rd, Register rt, Register rs, uint8_t sa);
1219 1219
1220 // Helpers.
1221 void LoadRegPlusOffsetToAt(const MemOperand& src);
1222
1220 // Relocation for a type-recording IC has the AST id added to it. This 1223 // Relocation for a type-recording IC has the AST id added to it. This
1221 // member variable is a way to pass the information from the call site to 1224 // member variable is a way to pass the information from the call site to
1222 // the relocation info. 1225 // the relocation info.
1223 TypeFeedbackId recorded_ast_id_; 1226 TypeFeedbackId recorded_ast_id_;
1224 1227
1225 inline static void set_target_internal_reference_encoded_at(Address pc, 1228 inline static void set_target_internal_reference_encoded_at(Address pc,
1226 Address target); 1229 Address target);
1227 1230
1228 int64_t buffer_space() const { return reloc_info_writer.pos() - pc_; } 1231 int64_t buffer_space() const { return reloc_info_writer.pos() - pc_; }
1229 1232
(...skipping 176 matching lines...) Expand 10 before | Expand all | Expand 10 after
1406 Opcode opcode, Register rs, int32_t offset21, 1409 Opcode opcode, Register rs, int32_t offset21,
1407 CompactBranchType is_compact_branch = CompactBranchType::NO); 1410 CompactBranchType is_compact_branch = CompactBranchType::NO);
1408 void GenInstrImmediate(Opcode opcode, Register rs, uint32_t offset21); 1411 void GenInstrImmediate(Opcode opcode, Register rs, uint32_t offset21);
1409 void GenInstrImmediate( 1412 void GenInstrImmediate(
1410 Opcode opcode, int32_t offset26, 1413 Opcode opcode, int32_t offset26,
1411 CompactBranchType is_compact_branch = CompactBranchType::NO); 1414 CompactBranchType is_compact_branch = CompactBranchType::NO);
1412 1415
1413 void GenInstrJump(Opcode opcode, 1416 void GenInstrJump(Opcode opcode,
1414 uint32_t address); 1417 uint32_t address);
1415 1418
1416 // Helpers.
1417 void LoadRegPlusOffsetToAt(const MemOperand& src);
1418
1419 // Labels. 1419 // Labels.
1420 void print(Label* L); 1420 void print(Label* L);
1421 void bind_to(Label* L, int pos); 1421 void bind_to(Label* L, int pos);
1422 void next(Label* L, bool is_internal); 1422 void next(Label* L, bool is_internal);
1423 1423
1424 // One trampoline consists of: 1424 // One trampoline consists of:
1425 // - space for trampoline slots, 1425 // - space for trampoline slots,
1426 // - space for labels. 1426 // - space for labels.
1427 // 1427 //
1428 // Space for trampoline slots is equal to slot_count * 2 * kInstrSize. 1428 // Space for trampoline slots is equal to slot_count * 2 * kInstrSize.
(...skipping 82 matching lines...) Expand 10 before | Expand all | Expand 10 after
1511 public: 1511 public:
1512 explicit EnsureSpace(Assembler* assembler) { 1512 explicit EnsureSpace(Assembler* assembler) {
1513 assembler->CheckBuffer(); 1513 assembler->CheckBuffer();
1514 } 1514 }
1515 }; 1515 };
1516 1516
1517 } // namespace internal 1517 } // namespace internal
1518 } // namespace v8 1518 } // namespace v8
1519 1519
1520 #endif // V8_ARM_ASSEMBLER_MIPS_H_ 1520 #endif // V8_ARM_ASSEMBLER_MIPS_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698