Changeset 102065 in vbox for trunk/include
- Timestamp:
- Nov 10, 2023 4:14:51 PM (15 months ago)
- Location:
- trunk/include
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/include/VBox/err.h
r101844 r102065 2583 2583 /** Recompiler: Out of stack slots. */ 2584 2584 #define VERR_IEM_VAR_OUT_OF_STACK_SLOTS (-5362) 2585 /** Recompiler: Unexpected kind of variable. */ 2586 #define VERR_IEM_VAR_UNEXPECTED_KIND (-5363) 2585 2587 /** Recompiler: Variable management internal processing error \#1. */ 2586 #define VERR_IEM_VAR_IPE_1 (-536 3)2588 #define VERR_IEM_VAR_IPE_1 (-5364) 2587 2589 /** Recompiler: Variable management internal processing error \#2. */ 2588 #define VERR_IEM_VAR_IPE_2 (-536 4)2590 #define VERR_IEM_VAR_IPE_2 (-5365) 2589 2591 /** Recompiler: Variable management internal processing error \#3. */ 2590 #define VERR_IEM_VAR_IPE_3 (-536 5)2592 #define VERR_IEM_VAR_IPE_3 (-5366) 2591 2593 /** Recompiler: Variable management internal processing error \#4. */ 2592 #define VERR_IEM_VAR_IPE_4 (-536 6)2594 #define VERR_IEM_VAR_IPE_4 (-5367) 2593 2595 /** Recompiler: Variable management internal processing error \#5. */ 2594 #define VERR_IEM_VAR_IPE_5 (-536 7)2596 #define VERR_IEM_VAR_IPE_5 (-5368) 2595 2597 2596 2598 /** Recompiler: Unimplemented case. */ -
trunk/include/iprt/armv8.h
r101910 r102065 2533 2533 typedef enum 2534 2534 { 2535 kArmv8A64InstrMovWide_Not = 0, /**< MOVN - reg = ~(imm16 << hw*16; */ 2536 kArmv8A64InstrMovWide_Zero = 2, /**< MOVZ - reg = imm16 << hw*16; */ 2537 kArmv8A64InstrMovWide_Keep = 3 /**< MOVK - keep the other halfwords. */ 2538 } ARMV8A64INSTRMOVWIDE; 2539 2540 /** 2541 * A64: Encode a move wide immediate instruction. 2542 * 2543 * @returns The encoded instruction. 2544 * @param enmType The load instruction type. 2545 * @param iReg The register to mov the immediate into. 2546 * @param uImm16 The immediate value. 2547 * @param iHalfWord Which of the 4 (@a f64Bit = true) or 2 register (16-bit) 2548 * half-words to target: 2549 * - 0 for bits 15:00, 2550 * - 1 for bits 31:16, 2551 * - 2 for bits 47:32 (f64Bit=true only), 2552 * - 3 for bits 63:48 (f64Bit=true only). 2553 * @param f64Bit true for 64-bit GPRs (default), @c false for 32-bit GPRs. 2554 */ 2555 DECL_FORCE_INLINE(uint32_t) Armv8A64MkInstrMovWide(ARMV8A64INSTRMOVWIDE enmType, uint32_t iRegDst, uint32_t uImm16, 2556 uint32_t iHalfWord = 0, bool f64Bit = true) 2557 { 2558 Assert(iRegDst < 32); Assert(uImm16 <= UINT16_MAX); Assert(iHalfWord < 2 + (2 * f64Bit)); 2559 return ((uint32_t)f64Bit << 31) 2560 | UINT32_C(0x11400000) 2561 | (Half << 21) 2562 | (uImm16 << 5) 2563 | iRegDst; 2564 } 2565 2566 /** A64: Encodes a MOVN instruction. 2567 * @see Armv8A64MkInstrMovWide for parameter details. */ 2568 DECL_FORCE_INLINE(uint32_t) Armv8A64MkInstrMovN(uint32_t iRegDst, uint32_t uImm16, uint32_t iHalfWord = 0, bool f64Bit = true) 2569 { 2570 return Armv8A64MkInstrMovWide(kArmv8A64InstrMovWide_Not, iRegDst, uImm16, iHalfWord, f64Bit); 2571 } 2572 2573 /** A64: Encodes a MOVZ instruction. 2574 * @see Armv8A64MkInstrMovWide for parameter details. */ 2575 DECL_FORCE_INLINE(uint32_t) Armv8A64MkInstrMovZ(uint32_t iRegDst, uint32_t uImm16, uint32_t iHalfWord = 0, bool f64Bit = true) 2576 { 2577 return Armv8A64MkInstrMovWide(kArmv8A64InstrMovWide_Zero, iRegDst, uImm16, iHalfWord, f64Bit); 2578 } 2579 2580 /** A64: Encodes a MOVK instruction. 2581 * @see Armv8A64MkInstrMovWide for parameter details. */ 2582 DECL_FORCE_INLINE(uint32_t) Armv8A64MkInstrMovK(uint32_t iRegDst, uint32_t uImm16, uint32_t iHalfWord = 0, bool f64Bit = true) 2583 { 2584 return Armv8A64MkInstrMovWide(kArmv8A64InstrMovWide_Keep, iRegDst, uImm16, iHalfWord, f64Bit); 2585 } 2586 2587 2588 typedef enum 2589 { 2535 2590 kArmv8A64InstrShift_Lsl = 0, 2536 2591 kArmv8A64InstrShift_Lsr,
Note:
See TracChangeset
for help on using the changeset viewer.