| Index: src/ppc/constants-ppc.h
|
| diff --git a/src/ppc/constants-ppc.h b/src/ppc/constants-ppc.h
|
| index 9434b8f92feb43e9e277c6e6058bb54f8b99af13..58d443001963a573c702a83c4296573e17195f32 100644
|
| --- a/src/ppc/constants-ppc.h
|
| +++ b/src/ppc/constants-ppc.h
|
| @@ -163,6 +163,7 @@ enum OpcodeExt2 {
|
| SUBFCX = 8 << 1,
|
| ADDCX = 10 << 1,
|
| MULHWUX = 11 << 1,
|
| + ISEL = 15 << 1,
|
| MFCR = 19 << 1,
|
| LWARX = 20 << 1,
|
| LDX = 21 << 1,
|
| @@ -192,17 +193,17 @@ enum OpcodeExt2 {
|
| STWX = 151 << 1, // store word w/ x-form
|
| MTVSRD = 179 << 1, // Move To VSR Doubleword
|
| STDUX = 181 << 1,
|
| - STWUX = 183 << 1, // store word w/ update x-form
|
| - /*
|
| - MTCRF
|
| - MTMSR
|
| - STWCXx
|
| - SUBFZEX
|
| - */
|
| - ADDZEX = 202 << 1, // Add to Zero Extended
|
| - /*
|
| - MTSR
|
| - */
|
| + STWUX = 183 << 1, // store word w/ update x-form
|
| + /*
|
| + MTCRF
|
| + MTMSR
|
| + STWCXx
|
| + SUBFZEX
|
| + */
|
| + ADDZEX = 202 << 1, // Add to Zero Extended
|
| + /*
|
| + MTSR
|
| + */
|
| MTVSRWA = 211 << 1, // Move To VSR Word Algebraic
|
| STBX = 215 << 1, // store byte w/ x-form
|
| MULLD = 233 << 1, // Multiply Low Double Word
|
| @@ -212,13 +213,17 @@ enum OpcodeExt2 {
|
| ADDX = 266 << 1, // Add
|
| LHZX = 279 << 1, // load half-word zero w/ x-form
|
| LHZUX = 311 << 1, // load half-word zero w/ update x-form
|
| + LWAX = 341 << 1, // load word algebraic w/ x-form
|
| LHAX = 343 << 1, // load half-word algebraic w/ x-form
|
| LHAUX = 375 << 1, // load half-word algebraic w/ update x-form
|
| XORX = 316 << 1, // Exclusive OR
|
| MFSPR = 339 << 1, // Move from Special-Purpose-Register
|
| STHX = 407 << 1, // store half-word w/ x-form
|
| + ORC = 412 << 1, // Or with Complement
|
| STHUX = 439 << 1, // store half-word w/ update x-form
|
| ORX = 444 << 1, // Or
|
| + DIVDU = 457 << 1, // Divide Double Word Unsigned
|
| + DIVWU = 459 << 1, // Divide Word Unsigned
|
| MTSPR = 467 << 1, // Move to Special-Purpose-Register
|
| DIVD = 489 << 1, // Divide Double Word
|
| DIVW = 491 << 1, // Divide Word
|
| @@ -267,6 +272,9 @@ enum OpcodeExt4 {
|
| FMR = 72 << 1, // Floating Move Register
|
| MTFSFI = 134 << 1, // Move to FPSCR Field Immediate
|
| FABS = 264 << 1, // Floating Absolute Value
|
| + FRIN = 392 << 1, // Floating Round to Integer Nearest
|
| + FRIZ = 424 << 1, // Floating Round to Integer Toward Zero
|
| + FRIP = 456 << 1, // Floating Round to Integer Plus
|
| FRIM = 488 << 1, // Floating Round to Integer Minus
|
| MFFS = 583 << 1, // move from FPSCR x-form
|
| MTFSF = 711 << 1, // move to FPSCR fields XFL-form
|
| @@ -334,26 +342,6 @@ enum {
|
| kTOMask = 0x1f << 21
|
| };
|
|
|
| -// the following is to differentiate different faked opcodes for
|
| -// the BOGUS PPC instruction we invented (when bit 25 is 0) or to mark
|
| -// different stub code (when bit 25 is 1)
|
| -// - use primary opcode 1 for undefined instruction
|
| -// - use bit 25 to indicate whether the opcode is for fake-arm
|
| -// instr or stub-marker
|
| -// - use the least significant 6-bit to indicate FAKE_OPCODE_T or
|
| -// MARKER_T
|
| -#define FAKE_OPCODE 1 << 26
|
| -#define MARKER_SUBOPCODE_BIT 25
|
| -#define MARKER_SUBOPCODE 1 << MARKER_SUBOPCODE_BIT
|
| -#define FAKER_SUBOPCODE 0 << MARKER_SUBOPCODE_BIT
|
| -
|
| -enum FAKE_OPCODE_T {
|
| - fBKPT = 14,
|
| - fLastFaker // can't be more than 128 (2^^7)
|
| -};
|
| -#define FAKE_OPCODE_HIGH_BIT 7 // fake opcode has to fall into bit 0~7
|
| -#define F_NEXT_AVAILABLE_STUB_MARKER 369 // must be less than 2^^9 (512)
|
| -#define STUB_MARKER_HIGH_BIT 9 // stub marker has to fall into bit 0~9
|
| // -----------------------------------------------------------------------------
|
| // Addressing modes and instruction variants.
|
|
|
| @@ -411,9 +399,7 @@ enum SoftwareInterruptCodes {
|
| // break point
|
| kBreakpoint = 0x821008, // bits23-0 of 0x7d821008 = twge r2, r2
|
| // stop
|
| - kStopCode = 1 << 23,
|
| - // info
|
| - kInfo = 0x9ff808 // bits23-0 of 0x7d9ff808 = twge r31, r31
|
| + kStopCode = 1 << 23
|
| };
|
| const uint32_t kStopCodeMask = kStopCode - 1;
|
| const uint32_t kMaxStopCode = kStopCode - 1;
|
|
|