| OLD | NEW |
| 1 /* Copyright (c) 2007, Google Inc. | 1 /* Copyright (c) 2007, Google 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 | 8 * * Redistributions of source code must retain the above copyright |
| 9 * notice, this list of conditions and the following disclaimer. | 9 * notice, this list of conditions and the following disclaimer. |
| 10 * * Redistributions in binary form must reproduce the above | 10 * * Redistributions in binary form must reproduce the above |
| (...skipping 54 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 65 // to be preamble patched. | 65 // to be preamble patched. |
| 66 // -# The opcode length is always calculated, so that the patching utility | 66 // -# The opcode length is always calculated, so that the patching utility |
| 67 // can figure out where the next instruction starts, and whether it | 67 // can figure out where the next instruction starts, and whether it |
| 68 // already has enough instructions to replace with the absolute jump | 68 // already has enough instructions to replace with the absolute jump |
| 69 // to the patching code. | 69 // to the patching code. |
| 70 // | 70 // |
| 71 // The usage is quite simple; just create a MiniDisassembler and use its | 71 // The usage is quite simple; just create a MiniDisassembler and use its |
| 72 // Disassemble() method. | 72 // Disassemble() method. |
| 73 // | 73 // |
| 74 // If you would like to extend this disassembler, please refer to the | 74 // If you would like to extend this disassembler, please refer to the |
| 75 // IA-32 Intel® Architecture Software Developers Manual Volume 2: | 75 // IA-32 Intel® Architecture Software Developer's Manual Volume 2: |
| 76 // Instruction Set Reference for information about operand decoding | 76 // Instruction Set Reference for information about operand decoding |
| 77 // etc. | 77 // etc. |
| 78 class PERFTOOLS_DLL_DECL MiniDisassembler { | 78 class PERFTOOLS_DLL_DECL MiniDisassembler { |
| 79 public: | 79 public: |
| 80 | 80 |
| 81 // Creates a new instance and sets defaults. | 81 // Creates a new instance and sets defaults. |
| 82 // | 82 // |
| 83 // @param operand_default_32_bits If true, the default operand size is | 83 // @param operand_default_32_bits If true, the default operand size is |
| 84 // set to 32 bits, which is the default under Win32. Otherwise it is 16 bits. | 84 // set to 32 bits, which is the default under Win32. Otherwise it is 16 bits. |
| 85 // @param address_default_32_bits If true, the default address size is | 85 // @param address_default_32_bits If true, the default address size is |
| (...skipping 102 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 188 | 188 |
| 189 // Indicators of whether we got certain prefixes that certain | 189 // Indicators of whether we got certain prefixes that certain |
| 190 // silly Intel instructions depend on in nonstandard ways for | 190 // silly Intel instructions depend on in nonstandard ways for |
| 191 // their behaviors. | 191 // their behaviors. |
| 192 bool got_f2_prefix_, got_f3_prefix_, got_66_prefix_; | 192 bool got_f2_prefix_, got_f3_prefix_, got_66_prefix_; |
| 193 }; | 193 }; |
| 194 | 194 |
| 195 }; // namespace sidestep | 195 }; // namespace sidestep |
| 196 | 196 |
| 197 #endif // GOOGLE_PERFTOOLS_MINI_DISASSEMBLER_H_ | 197 #endif // GOOGLE_PERFTOOLS_MINI_DISASSEMBLER_H_ |
| OLD | NEW |