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

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

Issue 6677044: Use a class field instead of global FLAG_debug_code in assember and (Closed)
Patch Set: Created 9 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
« no previous file with comments | « no previous file | src/arm/assembler-arm.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 (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 5 // modification, are permitted provided that the following conditions
6 // are met: 6 // are 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 536 matching lines...) Expand 10 before | Expand all | Expand 10 after
547 // buffer, and buffer_size determines the initial buffer size. The buffer is 547 // buffer, and buffer_size determines the initial buffer size. The buffer is
548 // owned by the assembler and deallocated upon destruction of the assembler. 548 // owned by the assembler and deallocated upon destruction of the assembler.
549 // 549 //
550 // If the provided buffer is not NULL, the assembler uses the provided buffer 550 // If the provided buffer is not NULL, the assembler uses the provided buffer
551 // for code generation and assumes its size to be buffer_size. If the buffer 551 // for code generation and assumes its size to be buffer_size. If the buffer
552 // is too small, a fatal error occurs. No deallocation of the buffer is done 552 // is too small, a fatal error occurs. No deallocation of the buffer is done
553 // upon destruction of the assembler. 553 // upon destruction of the assembler.
554 Assembler(void* buffer, int buffer_size); 554 Assembler(void* buffer, int buffer_size);
555 ~Assembler(); 555 ~Assembler();
556 556
557 // Overrides the default provided by FLAG_debug_code.
558 void set_emit_debug_code(bool value) { emit_debug_code_ = value; }
559
557 // GetCode emits any pending (non-emitted) code and fills the descriptor 560 // GetCode emits any pending (non-emitted) code and fills the descriptor
558 // desc. GetCode() is idempotent; it returns the same result if no other 561 // desc. GetCode() is idempotent; it returns the same result if no other
559 // Assembler functions are invoked in between GetCode() calls. 562 // Assembler functions are invoked in between GetCode() calls.
560 void GetCode(CodeDesc* desc); 563 void GetCode(CodeDesc* desc);
561 564
562 // Label operations & relative jumps (PPUM Appendix D) 565 // Label operations & relative jumps (PPUM Appendix D)
563 // 566 //
564 // Takes a branch opcode (cc) and a label (L) and generates 567 // Takes a branch opcode (cc) and a label (L) and generates
565 // either a backward branch or a forward branch and links it 568 // either a backward branch or a forward branch and links it
566 // to the label fixup chain. Usage: 569 // to the label fixup chain. Usage:
(...skipping 580 matching lines...) Expand 10 before | Expand all | Expand 10 after
1147 static bool IsCmpRegister(Instr instr); 1150 static bool IsCmpRegister(Instr instr);
1148 static bool IsCmpImmediate(Instr instr); 1151 static bool IsCmpImmediate(Instr instr);
1149 static Register GetCmpImmediateRegister(Instr instr); 1152 static Register GetCmpImmediateRegister(Instr instr);
1150 static int GetCmpImmediateRawImmediate(Instr instr); 1153 static int GetCmpImmediateRawImmediate(Instr instr);
1151 static bool IsNop(Instr instr, int type = NON_MARKING_NOP); 1154 static bool IsNop(Instr instr, int type = NON_MARKING_NOP);
1152 1155
1153 // Check if is time to emit a constant pool for pending reloc info entries 1156 // Check if is time to emit a constant pool for pending reloc info entries
1154 void CheckConstPool(bool force_emit, bool require_jump); 1157 void CheckConstPool(bool force_emit, bool require_jump);
1155 1158
1156 protected: 1159 protected:
1160 bool emit_debug_code() const { return emit_debug_code_; }
1161
1157 int buffer_space() const { return reloc_info_writer.pos() - pc_; } 1162 int buffer_space() const { return reloc_info_writer.pos() - pc_; }
1158 1163
1159 // Read/patch instructions 1164 // Read/patch instructions
1160 Instr instr_at(int pos) { return *reinterpret_cast<Instr*>(buffer_ + pos); } 1165 Instr instr_at(int pos) { return *reinterpret_cast<Instr*>(buffer_ + pos); }
1161 void instr_at_put(int pos, Instr instr) { 1166 void instr_at_put(int pos, Instr instr) {
1162 *reinterpret_cast<Instr*>(buffer_ + pos) = instr; 1167 *reinterpret_cast<Instr*>(buffer_ + pos) = instr;
1163 } 1168 }
1164 1169
1165 // Decode branch instruction at pos and return branch target pos 1170 // Decode branch instruction at pos and return branch target pos
1166 int target_at(int pos); 1171 int target_at(int pos);
(...skipping 108 matching lines...) Expand 10 before | Expand all | Expand 10 after
1275 // Record reloc info for current pc_ 1280 // Record reloc info for current pc_
1276 void RecordRelocInfo(RelocInfo::Mode rmode, intptr_t data = 0); 1281 void RecordRelocInfo(RelocInfo::Mode rmode, intptr_t data = 0);
1277 1282
1278 friend class RegExpMacroAssemblerARM; 1283 friend class RegExpMacroAssemblerARM;
1279 friend class RelocInfo; 1284 friend class RelocInfo;
1280 friend class CodePatcher; 1285 friend class CodePatcher;
1281 friend class BlockConstPoolScope; 1286 friend class BlockConstPoolScope;
1282 1287
1283 PositionsRecorder positions_recorder_; 1288 PositionsRecorder positions_recorder_;
1284 bool allow_peephole_optimization_; 1289 bool allow_peephole_optimization_;
1290 bool emit_debug_code_;
1285 friend class PositionsRecorder; 1291 friend class PositionsRecorder;
1286 friend class EnsureSpace; 1292 friend class EnsureSpace;
1287 }; 1293 };
1288 1294
1289 1295
1290 class EnsureSpace BASE_EMBEDDED { 1296 class EnsureSpace BASE_EMBEDDED {
1291 public: 1297 public:
1292 explicit EnsureSpace(Assembler* assembler) { 1298 explicit EnsureSpace(Assembler* assembler) {
1293 assembler->CheckBuffer(); 1299 assembler->CheckBuffer();
1294 } 1300 }
1295 }; 1301 };
1296 1302
1297 1303
1298 } } // namespace v8::internal 1304 } } // namespace v8::internal
1299 1305
1300 #endif // V8_ARM_ASSEMBLER_ARM_H_ 1306 #endif // V8_ARM_ASSEMBLER_ARM_H_
OLDNEW
« no previous file with comments | « no previous file | src/arm/assembler-arm.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698