one_byte_opcodes.isa (4730:77e3e9b15e7e) | one_byte_opcodes.isa (4732:9fdd1a5ab692) |
---|---|
1// Copyright (c) 2007 The Hewlett-Packard Development Company 2// All rights reserved. 3// 4// Redistribution and use of this software in source and binary forms, 5// with or without modification, are permitted provided that the 6// following conditions are met: 7// 8// The software must be used only for Non-Commercial Use which means any --- 292 unchanged lines hidden (view full) --- 301 0x0: Inst::NOP(); //XXX repe makes this a "pause" 302 default: xchg_B_rAX(); 303 } 304 0x13: decode OPCODE_OP_BOTTOM3 { 305 0x0: cbw_or_cwde_or_cdqe_rAX(); 306 0x1: cwd_or_cdq_or_cqo_rAX_rDX(); 307 0x2: decode MODE_SUBMODE { 308 0x0: Inst::UD2(); | 1// Copyright (c) 2007 The Hewlett-Packard Development Company 2// All rights reserved. 3// 4// Redistribution and use of this software in source and binary forms, 5// with or without modification, are permitted provided that the 6// following conditions are met: 7// 8// The software must be used only for Non-Commercial Use which means any --- 292 unchanged lines hidden (view full) --- 301 0x0: Inst::NOP(); //XXX repe makes this a "pause" 302 default: xchg_B_rAX(); 303 } 304 0x13: decode OPCODE_OP_BOTTOM3 { 305 0x0: cbw_or_cwde_or_cdqe_rAX(); 306 0x1: cwd_or_cdq_or_cqo_rAX_rDX(); 307 0x2: decode MODE_SUBMODE { 308 0x0: Inst::UD2(); |
309 default: call_Ap(); | 309 default: call_far_Ap(); |
310 } 311 0x3: fwait(); //aka wait 312 0x4: pushf_Fv(); 313 0x5: popf_Fv(); 314 //Both of these should be illegal only if CPUID.AHF64=0, 315 //according to sandpile.org 316 0x6: decode MODE_SUBMODE { 317 0x0: Inst::UD2(); --- 33 unchanged lines hidden (view full) --- 351 0x5: mov_Ch_Ib(); 352 0x6: mov_Dh_Ib(); 353 0x7: mov_Bh_Ib(); 354 } 355 0x17: Inst::MOV(B,Iv); 356 0x18: decode OPCODE_OP_BOTTOM3 { 357 //0x0: group2_Eb_Ib(); 358 0x0: decode MODRM_REG { | 310 } 311 0x3: fwait(); //aka wait 312 0x4: pushf_Fv(); 313 0x5: popf_Fv(); 314 //Both of these should be illegal only if CPUID.AHF64=0, 315 //according to sandpile.org 316 0x6: decode MODE_SUBMODE { 317 0x0: Inst::UD2(); --- 33 unchanged lines hidden (view full) --- 351 0x5: mov_Ch_Ib(); 352 0x6: mov_Dh_Ib(); 353 0x7: mov_Bh_Ib(); 354 } 355 0x17: Inst::MOV(B,Iv); 356 0x18: decode OPCODE_OP_BOTTOM3 { 357 //0x0: group2_Eb_Ib(); 358 0x0: decode MODRM_REG { |
359 0x0: rol_Eb_Ib(); 360 0x1: ror_Eb_Ib(); | 359 0x0: Inst::ROL(Eb,Ib); 360 0x1: Inst::ROR(Eb,Ib); |
361 0x2: rcl_Eb_Ib(); 362 0x3: rcr_Eb_Ib(); 363 0x4: Inst::SAL(Eb,Ib); | 361 0x2: rcl_Eb_Ib(); 362 0x3: rcr_Eb_Ib(); 363 0x4: Inst::SAL(Eb,Ib); |
364 0x5: shr_Eb_Ib(); | 364 0x5: Inst::SHR(Eb,Ib); |
365 0x6: Inst::SAL(Eb,Ib); | 365 0x6: Inst::SAL(Eb,Ib); |
366 0x7: sar_Eb_Ib(); | 366 0x7: Inst::SAR(Eb,Ib); |
367 } 368 //0x1: group2_Ev_Ib(); 369 0x1: decode MODRM_REG { | 367 } 368 //0x1: group2_Ev_Ib(); 369 0x1: decode MODRM_REG { |
370 0x0: rol_Ev_Ib(); 371 0x1: ror_Ev_Ib(); | 370 0x0: Inst::ROL(Ev,Ib); 371 0x1: Inst::ROR(Ev,Ib); |
372 0x2: rcl_Ev_Ib(); 373 0x3: rcr_Ev_Ib(); 374 0x4: Inst::SAL(Ev,Ib); | 372 0x2: rcl_Ev_Ib(); 373 0x3: rcr_Ev_Ib(); 374 0x4: Inst::SAL(Ev,Ib); |
375 0x5: shr_Ev_Ib(); | 375 0x5: Inst::SHR(Ev,Ib); |
376 0x6: Inst::SAL(Ev,Ib); | 376 0x6: Inst::SAL(Ev,Ib); |
377 0x7: sar_Ev_Ib(); | 377 0x7: Inst::SAR(Ev,Ib); |
378 } 379 0x2: ret_near_Iw(); 380 0x3: Inst::RET_NEAR(); 381 0x4: decode MODE_SUBMODE { 382 0x0: Inst::UD2(); 383 default: les_Gz_Mp(); 384 } 385 0x5: decode MODE_SUBMODE { --- 61 unchanged lines hidden (view full) --- 447 0x6: out_Ib_Al(); 448 0x7: out_Ib_eAX(); 449 } 450 0x1D: decode OPCODE_OP_BOTTOM3 { 451 0x0: Inst::CALL_NEAR(Jz); 452 0x1: Inst::JMP(Jz); 453 0x2: decode MODE_SUBMODE { 454 0x0: Inst::UD2(); | 378 } 379 0x2: ret_near_Iw(); 380 0x3: Inst::RET_NEAR(); 381 0x4: decode MODE_SUBMODE { 382 0x0: Inst::UD2(); 383 default: les_Gz_Mp(); 384 } 385 0x5: decode MODE_SUBMODE { --- 61 unchanged lines hidden (view full) --- 447 0x6: out_Ib_Al(); 448 0x7: out_Ib_eAX(); 449 } 450 0x1D: decode OPCODE_OP_BOTTOM3 { 451 0x0: Inst::CALL_NEAR(Jz); 452 0x1: Inst::JMP(Jz); 453 0x2: decode MODE_SUBMODE { 454 0x0: Inst::UD2(); |
455 default: jmp_Ap(); | 455 default: jmp_far_Ap(); |
456 } 457 0x3: Inst::JMP(Jb); 458 0x4: in_Al_Dx(); 459 0x5: in_eAX_Dx(); 460 0x6: out_Dx_Al(); 461 0x7: out_Dx_eAX(); 462 } 463 0x1E: decode OPCODE_OP_BOTTOM3 { --- 11 unchanged lines hidden (view full) --- 475 } 476 0x1F: decode OPCODE_OP_BOTTOM3 { 477 0x0: clc(); 478 0x1: stc(); 479 0x2: cli(); 480 0x3: sti(); 481 0x4: cld(); 482 0x5: std(); | 456 } 457 0x3: Inst::JMP(Jb); 458 0x4: in_Al_Dx(); 459 0x5: in_eAX_Dx(); 460 0x6: out_Dx_Al(); 461 0x7: out_Dx_eAX(); 462 } 463 0x1E: decode OPCODE_OP_BOTTOM3 { --- 11 unchanged lines hidden (view full) --- 475 } 476 0x1F: decode OPCODE_OP_BOTTOM3 { 477 0x0: clc(); 478 0x1: stc(); 479 0x2: cli(); 480 0x3: sti(); 481 0x4: cld(); 482 0x5: std(); |
483 //0x6: group4(); 484 0x6: decode MODRM_REG { 485 0x0: Inst::INC(Eb); 486 0x1: Inst::DEC(Eb); 487 default: Inst::UD2(); | 483 format Inst { 484 //0x6: group4(); 485 0x6: decode MODRM_REG { 486 0x0: INC(Eb); 487 0x1: DEC(Eb); 488 default: UD2(); 489 } 490 //0x7: group5(); 491 0x7: decode MODRM_REG { 492 0x0: INC(Ev); 493 0x1: DEC(Ev); 494 0x2: CALL_NEAR(Ev); 495 0x3: WarnUnimpl::call_far_Mp(); 496 0x4: JMP(Ev); 497 0x5: WarnUnimpl::jmp_far_Mp(); 498 0x6: PUSH(Ev); 499 0x7: UD2(); 500 } |
488 } | 501 } |
489 //0x7: group5(); 490 0x7: decode MODRM_REG { 491 0x0: Inst::INC(Ev); 492 0x1: Inst::DEC(Ev); 493 0x2: call_Ev(); 494 0x3: call_Mp(); 495 0x4: jmp_Ev(); 496 0x5: jmp_Mp(); 497 0x6: push_Ev(); 498 0x7: Inst::UD2(); 499 } | |
500 } 501 } 502 default: FailUnimpl::oneByteOps(); 503} | 502 } 503 } 504 default: FailUnimpl::oneByteOps(); 505} |