儲存庫 vbox 的更動 65926
- 時間撮記:
- 2017-3-3 上午11:00:27 (8 年 以前)
- 位置:
- trunk/src/VBox
- 檔案:
-
- 新增 2 筆資料
- 修改 3 筆資料
圖例:
- 未更動
- 新增
- 刪除
-
trunk/src/VBox/VMM/VMMAll/IEMAllInstructionsPython.py
r65880 r65926 162 162 163 163 ## IEMFORM_XXX mappings. 164 g_kdIemForms = { # sEncoding, [sWhere,]164 g_kdIemForms = { # sEncoding, [ sWhere1, ... ] 165 165 'RM': ( 'ModR/M', [ 'reg', 'rm' ], ), 166 166 'RM_REG': ( 'ModR/M', [ 'reg', 'rm' ], ), … … 197 197 ## Valid values for \@openc 198 198 g_kdEncodings = { 199 'ModR/M': [],##< ModR/M200 'fixed': [],##< Fixed encoding (address, registers, etc).201 'prefix': [],##< Prefix199 'ModR/M': [ 'BS3CG1ENC_MODRM', ], ##< ModR/M 200 'fixed': [ 'BS3CG1ENC_FIXED', ], ##< Fixed encoding (address, registers, etc). 201 'prefix': [ None, ], ##< Prefix 202 202 }; 203 203 … … 2758 2758 oDstFile.write('\n'); 2759 2759 break; #for now 2760 generateDisassemblerTables(); 2761 2762 2763 2760 2761 if __name__ == '__main__': 2762 generateDisassemblerTables(); 2763 2764 2765 -
trunk/src/VBox/ValidationKit/bootsectors/Makefile.kmk
r65893 r65926 317 317 MISCBINS += bs3-cpu-generated-1 318 318 bs3-cpu-generated-1_TEMPLATE = VBoxBS3KitImg 319 bs3-cpu-generated-1_INCS = . 319 bs3-cpu-generated-1_INCS = . 320 bs3-cpu-generated-1_DEFS = BS3_CMN_INSTANTIATE_FILE1=bs3-cpu-generated-1-template.c 320 321 bs3-cpu-generated-1_SOURCES = \ 321 322 bs3kit/bs3-first-rm.asm \ 322 323 bs3-cpu-generated-1.c \ 323 bs3-cpu-generated-1-asm.asm 324 bs3-cpu-generated-1-asm.asm \ 325 bs3kit/bs3-cmn-instantiate.c16 \ 326 bs3kit/bs3-cmn-instantiate.c32 \ 327 bs3kit/bs3-cmn-instantiate.c64 \ 328 $(bs3-cpu-generated-1_0_OUTDIR)/bs3-cpu-generated-1-data.c16 329 bs3-cpu-generated-1_CLEAN = $(bs3-cpu-generated-1_0_OUTDIR)/bs3-cpu-generated-1-data.c16 330 324 331 bs3-cpu-generated-1-template.o:: \ 332 $$(bs3-cpu-generated-1_0_OUTDIR)/bs3kit/bs3-cmn-instantiate.o16 \ 333 $$(bs3-cpu-generated-1_0_OUTDIR)/bs3kit/bs3-cmn-instantiate.o32 \ 334 $$(bs3-cpu-generated-1_0_OUTDIR)/bs3kit/bs3-cmn-instantiate.o64 \ 325 335 $$(bs3-cpu-generated-1_0_OUTDIR)/bs3-cpu-generated-1-asm.o16 326 336 337 $$(bs3-cpu-generated-1_0_OUTDIR)/bs3-cpu-generated-1-data.c16: \ 338 $(PATH_SUB_CURRENT)/bs3-cpu-generated-1-data.py \ 339 $(PATH_SUB_CURRENT)/../../VMM/VMMAll/IEMAllInstructionsPython.py \ 340 $(PATH_SUB_CURRENT)/../../VMM/VMMAll/IEMAllInstructions*.cpp.h \ 341 | $$(dir $$@) 342 $(VBOX_BLD_PYTHON) $< $@ 343 327 344 endif # VBOX_WITH_BS3KIT 328 345 -
trunk/src/VBox/ValidationKit/bootsectors/bs3-cpu-generated-1.h
r65903 r65926 33 33 34 34 35 36 /** Instruction encoding format. */ 35 /** 36 * Operand details. 37 * 38 * Currently simply using the encoding from the reference manuals. 39 */ 40 typedef enum BS3CG1OP 41 { 42 BS3CG1OP_INVALID = 0, 43 44 BS3CG1OP_Eb, 45 BS3CG1OP_Ev, 46 47 BS3CG1OP_Gb, 48 BS3CG1OP_Gv, 49 50 BS3CG1OP_END 51 } BS3CG1OP; 52 /** Pointer to a const operand enum. */ 53 typedef const BS3_FAR *PCBS3CG1OP; 54 55 56 /** 57 * Instruction encoding format. 58 * 59 * This duplicates some of the info in the operand array, however it makes it 60 * easier to figure out encoding variations. 61 */ 37 62 typedef enum BS3CG1ENC 38 63 { 39 64 BS3CG1ENC_INVALID = 0, 40 BS3CG1ENC_FIXED, 41 BS3CG1ENC_MODRM, 65 66 BS3CG1ENC_FIXED_Iz, 67 BS3CG1ENC_FIXED_FIRST = BS3CG1ENC_FIXED_Iz, 68 BS3CG1ENC_FIXED_Iv, 69 70 BS3CG1ENC_MODRM_Eb_Gb, 71 BS3CG1ENC_MODRM_Ev_Gv, 72 42 73 BS3CG1ENC_END 43 74 } BS3CG1ENC; … … 45 76 46 77 /** 47 * Operand details.48 *49 * Currently simply using the encoding from the reference manuals.50 */51 typedef enum BS3CG1OP52 {53 BS3CG1OP_INVALID = 0,54 55 BS3CG1OP_Eb,56 BS3CG1OP_Ev,57 58 BS3CG1OP_Gb,59 BS3CG1OP_Gv,60 61 BS3CG1OP_END62 } BS3CG1OP;63 64 65 /**66 78 * Generated instruction info. 67 79 */ 68 80 typedef struct BS3CG1INSTR 69 81 { 70 /** Opcode bytes. */71 uint8_t abOpcode[4];72 /** BS3CG1OP values for each operand. */73 uint8_t aenmOperands[4];74 82 /** The opcode size. */ 75 83 uint32_t cbOpcode : 2; 76 84 /** The number of operands. */ 77 85 uint32_t cOperands : 2; 86 /** The length of the mnemonic. */ 87 uint32_t cchMnemonic : 3; 88 /** Whether to advance the mnemonic array pointer. */ 89 uint32_t fAdvanceMnemonic : 1; 90 /** Offset into g_abBs3Cg1Tests of the first test. */ 91 uint32_t offTests : 23; 78 92 /** BS3CG1ENC values. */ 79 uint32_t enmEncoding : 5; 80 /** The length of the mnemonic. */ 81 uint32_t cchMnemonic : 4; 82 /** Index of the test header into g_aBs3Cg1Tests */ 83 uint32_t idxTestHdr : 19; 93 uint32_t enmEncoding : 10; 94 /** BS3CG1ENC values. */ 95 uint32_t uUnused : 22; 84 96 /** BS3CG1INSTR_F_XXX. */ 85 97 uint32_t fFlags; 86 98 } BS3CG1INSTR; 87 AssertCompileSize(BS3CG1INSTR, 1 6);99 AssertCompileSize(BS3CG1INSTR, 12); 88 100 /** Pointer to a const instruction. */ 89 101 typedef BS3CG1INSTR const BS3_FAR *PCBS3CG1INSTR; … … 103 115 /** The size of the selector program in bytes. 104 116 * This is also the offset of the input context modification program. */ 105 uint32_t cbSelector : 9;117 uint32_t cbSelector : 8; 106 118 /** The size of the input context modification program in bytes. 107 119 * This immediately follows the selector program. */ 108 uint32_t cbInput : 1 1;120 uint32_t cbInput : 12; 109 121 /** The size of the output context modification program in bytes. 110 122 * This immediately follows the input context modification program. The … … 128 140 #define BS3CG1_CTXOP_SIZE_MASK UINT8_C(0x07) 129 141 #define BS3CG1_CTXOP_1_BYTE UINT8_C(0x00) 130 #define BS3CG1_CTXOP_2_BYTE 131 #define BS3CG1_CTXOP_4_BYTE 132 #define BS3CG1_CTXOP_8_BYTE 133 #define BS3CG1_CTXOP_16_BYTE 134 #define BS3CG1_CTXOP_32_BYTE 135 #define BS3CG1_CTXOP_12_BYTE 142 #define BS3CG1_CTXOP_2_BYTES UINT8_C(0x01) 143 #define BS3CG1_CTXOP_4_BYTES UINT8_C(0x02) 144 #define BS3CG1_CTXOP_8_BYTES UINT8_C(0x03) 145 #define BS3CG1_CTXOP_16_BYTES UINT8_C(0x04) 146 #define BS3CG1_CTXOP_32_BYTES UINT8_C(0x05) 147 #define BS3CG1_CTXOP_12_BYTES UINT8_C(0x06) 136 148 #define BS3CG1_CTXOP_SIZE_ESC UINT8_C(0x07) /**< Separate byte encoding the value size follows immediately. */ 137 149 … … 309 321 310 322 323 /** The test instructions (generated). */ 324 extern const BS3CG1INSTR BS3_FAR_DATA g_aBs3Cg1Instructions[]; 311 325 /** The number of test instructions (generated). */ 312 extern uint16_t BS3_FAR_DATA g_cBs3Cg1Instructions; 313 /** The test instructions (generated). */ 314 extern const char BS3_FAR_DATA g_aBs3Cg1Instructions[]; 315 /** The test data that BS3CG1INSTR. */ 316 extern BS3CG1TESTHDR BS3_FAR_DATA g_aBs3Cg1Tests[]; 326 extern const uint16_t BS3_FAR_DATA g_cBs3Cg1Instructions; 317 327 /** The mnemonics (generated). 318 328 * Variable length sequence of mnemonics that runs in parallel to 319 329 * g_aBs3Cg1Instructions. */ 320 extern const char BS3_FAR_DATA g_achBs3Cg1Mnemonics[]; 330 extern const char BS3_FAR_DATA g_achBs3Cg1Mnemonics[]; 331 /** The opcodes (generated). 332 * Variable length sequence of opcode bytes that runs in parallel to 333 * g_aBs3Cg1Instructions, advancing by BS3CG1INSTR::cbOpcode each time. */ 334 extern const uint8_t BS3_FAR_DATA g_abBs3Cg1Opcodes[]; 335 /** The operands (generated). 336 * Variable length sequence of opcode values (BS3CG1OP) that runs in 337 * parallel to g_aBs3Cg1Instructions, advancing by BS3CG1INSTR::cOperands. */ 338 extern const uint8_t BS3_FAR_DATA g_abBs3Cg1Operands[]; 339 /** The test data that BS3CG1INSTR. 340 * In order to simplify generating these, we use a byte array. */ 341 extern const uint8_t BS3_FAR_DATA g_abBs3Cg1Tests[]; 321 342 322 343
注意:
瀏覽 TracChangeset
來幫助您使用更動檢視器