OLD | NEW |
---|---|
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #ifndef COURGETTE_ASSEMBLY_PROGRAM_H_ | 5 #ifndef COURGETTE_ASSEMBLY_PROGRAM_H_ |
6 #define COURGETTE_ASSEMBLY_PROGRAM_H_ | 6 #define COURGETTE_ASSEMBLY_PROGRAM_H_ |
7 | 7 |
8 #include <map> | 8 #include <map> |
9 #include <set> | 9 #include <set> |
10 #include <vector> | 10 #include <vector> |
(...skipping 69 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
80 // Generates an ELF style relocation table for ARM. | 80 // Generates an ELF style relocation table for ARM. |
81 CheckBool EmitElfARMRelocationInstruction() WARN_UNUSED_RESULT; | 81 CheckBool EmitElfARMRelocationInstruction() WARN_UNUSED_RESULT; |
82 | 82 |
83 // Following instruction will be assembled at address 'rva'. | 83 // Following instruction will be assembled at address 'rva'. |
84 CheckBool EmitOriginInstruction(RVA rva) WARN_UNUSED_RESULT; | 84 CheckBool EmitOriginInstruction(RVA rva) WARN_UNUSED_RESULT; |
85 | 85 |
86 // Generates a single byte of data or machine instruction. | 86 // Generates a single byte of data or machine instruction. |
87 CheckBool EmitByteInstruction(uint8 byte) WARN_UNUSED_RESULT; | 87 CheckBool EmitByteInstruction(uint8 byte) WARN_UNUSED_RESULT; |
88 | 88 |
89 // Generates multiple bytes of data or machine instructions. | 89 // Generates multiple bytes of data or machine instructions. |
90 CheckBool EmitBytesInstruction(const uint8* value, uint32 len) | 90 CheckBool EmitBytesInstruction(const uint8* value, size_t len) |
Peter Kasting
2014/09/30 00:08:01
Only called by DisassemblerElf32::ParseSimpleRegio
| |
91 WARN_UNUSED_RESULT; | 91 WARN_UNUSED_RESULT; |
92 | 92 |
93 // Generates 4-byte relative reference to address of 'label'. | 93 // Generates 4-byte relative reference to address of 'label'. |
94 CheckBool EmitRel32(Label* label) WARN_UNUSED_RESULT; | 94 CheckBool EmitRel32(Label* label) WARN_UNUSED_RESULT; |
95 | 95 |
96 // Generates 4-byte relative reference to address of 'label' for | 96 // Generates 4-byte relative reference to address of 'label' for |
97 // ARM. | 97 // ARM. |
98 CheckBool EmitRel32ARM(uint16 op, Label* label, const uint8* arm_op, | 98 CheckBool EmitRel32ARM(uint16 op, Label* label, const uint8* arm_op, |
99 uint16 op_size) WARN_UNUSED_RESULT; | 99 uint16 op_size) WARN_UNUSED_RESULT; |
100 | 100 |
(...skipping 58 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
159 // We have separate label spaces for addresses referenced by rel32 labels and | 159 // We have separate label spaces for addresses referenced by rel32 labels and |
160 // abs32 labels. This is somewhat arbitrary. | 160 // abs32 labels. This is somewhat arbitrary. |
161 RVAToLabel rel32_labels_; | 161 RVAToLabel rel32_labels_; |
162 RVAToLabel abs32_labels_; | 162 RVAToLabel abs32_labels_; |
163 | 163 |
164 DISALLOW_COPY_AND_ASSIGN(AssemblyProgram); | 164 DISALLOW_COPY_AND_ASSIGN(AssemblyProgram); |
165 }; | 165 }; |
166 | 166 |
167 } // namespace courgette | 167 } // namespace courgette |
168 #endif // COURGETTE_ASSEMBLY_PROGRAM_H_ | 168 #endif // COURGETTE_ASSEMBLY_PROGRAM_H_ |
OLD | NEW |