Changeset 101329 in vbox for trunk/include
- Timestamp:
- Oct 3, 2023 1:57:04 PM (17 months ago)
- svn:sync-xref-src-repo-rev:
- 159329
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/include/iprt/armv8.h
r101304 r101329 2333 2333 */ 2334 2334 DECL_FORCE_INLINE(uint32_t) Armv8A64MkInstrStLdImm9Ex(uint32_t u32Opcode, ARMV8A64INSTRLDSTTYPE enmType, 2335 uint32_t iReg, uint32_t i RegBase, int32_t i9ImmDisp = 0)2335 uint32_t iReg, uint32_t iBaseReg, int32_t i9ImmDisp = 0) 2336 2336 { 2337 Assert(i9ImmDisp >= -256 && i9ImmDisp < 256); Assert(iReg < 32); Assert(i RegBase< 32);2337 Assert(i9ImmDisp >= -256 && i9ImmDisp < 256); Assert(iReg < 32); Assert(iBaseReg < 32); 2338 2338 return u32Opcode 2339 2339 | (((uint32_t)enmType & (uint32_t)kArmv8A64InstrLdStType_Mask_Size) << (30 - kArmv8A64InstrLdStType_Shift_Size)) … … 2341 2341 | (((uint32_t)enmType & (uint32_t)kArmv8A64InstrLdStType_Mask_Opc) << (22 - kArmv8A64InstrLdStType_Shift_Opc)) 2342 2342 | (((uint32_t)i9ImmDisp & UINT32_C(0x1ff)) << 12) 2343 | (i RegBase<< 5)2343 | (iBaseReg << 5) 2344 2344 | iReg; 2345 2345 } … … 2356 2356 */ 2357 2357 DECL_FORCE_INLINE(uint32_t) Armv8A64MkInstrSturLdur(ARMV8A64INSTRLDSTTYPE enmType, 2358 uint32_t iReg, uint32_t i RegBase, int32_t i9ImmDisp = 0)2358 uint32_t iReg, uint32_t iBaseReg, int32_t i9ImmDisp = 0) 2359 2359 { 2360 2360 /* 3 2 1 0 */ 2361 2361 /* 10987654321098765432109876543210 */ 2362 2362 return Armv8A64MkInstrStLdImm9Ex(UINT32_C(0x38000000) /* 0b00111000000000000000000000000000 */, 2363 enmType, iReg, i RegBase, i9ImmDisp);2363 enmType, iReg, iBaseReg, i9ImmDisp); 2364 2364 } 2365 2365 … … 2375 2375 */ 2376 2376 DECL_FORCE_INLINE(uint32_t) Armv8A64MkInstrStrLdrPostIndex9(ARMV8A64INSTRLDSTTYPE enmType, 2377 uint32_t iReg, uint32_t i RegBase, int32_t i9ImmDisp = 0)2377 uint32_t iReg, uint32_t iBaseReg, int32_t i9ImmDisp = 0) 2378 2378 { 2379 2379 Assert(enmType != kArmv8A64InstrLdStType_Prefetch); /* 3 2 1 0 */ 2380 2380 /* 10987654321098765432109876543210 */ 2381 2381 return Armv8A64MkInstrStLdImm9Ex(UINT32_C(0x38000400) /* 0b00111000000000000000010000000000 */, 2382 enmType, iReg, i RegBase, i9ImmDisp);2382 enmType, iReg, iBaseReg, i9ImmDisp); 2383 2383 } 2384 2384 … … 2394 2394 */ 2395 2395 DECL_FORCE_INLINE(uint32_t) Armv8A64MkInstrStrLdrPreIndex9(ARMV8A64INSTRLDSTTYPE enmType, 2396 uint32_t iReg, uint32_t i RegBase, int32_t i9ImmDisp = 0)2396 uint32_t iReg, uint32_t iBaseReg, int32_t i9ImmDisp = 0) 2397 2397 { 2398 2398 Assert(enmType != kArmv8A64InstrLdStType_Prefetch); /* 3 2 1 0 */ 2399 2399 /* 10987654321098765432109876543210 */ 2400 2400 return Armv8A64MkInstrStLdImm9Ex(UINT32_C(0x38000c00) /* 0b00111000000000000000110000000000 */, 2401 enmType, iReg, i RegBase, i9ImmDisp);2401 enmType, iReg, iBaseReg, i9ImmDisp); 2402 2402 } 2403 2403 … … 2413 2413 */ 2414 2414 DECL_FORCE_INLINE(uint32_t) Armv8A64MkInstrSttrLdtr(ARMV8A64INSTRLDSTTYPE enmType, 2415 uint32_t iReg, uint32_t i RegBase, int32_t i9ImmDisp = 0)2415 uint32_t iReg, uint32_t iBaseReg, int32_t i9ImmDisp = 0) 2416 2416 { 2417 2417 Assert(enmType != kArmv8A64InstrLdStType_Prefetch); … … 2420 2420 /* 10987654321098765432109876543210 */ 2421 2421 return Armv8A64MkInstrStLdImm9Ex(UINT32_C(0x38000800) /* 0b00111000000000000000100000000000 */, 2422 enmType, iReg, i RegBase, i9ImmDisp);2422 enmType, iReg, iBaseReg, i9ImmDisp); 2423 2423 } 2424 2424 … … 2435 2435 */ 2436 2436 DECL_FORCE_INLINE(uint32_t) Armv8A64MkInstrStLdRUOff(ARMV8A64INSTRLDSTTYPE enmType, 2437 uint32_t iReg, uint32_t i RegBase, uint32_t u12ImmDisp)2437 uint32_t iReg, uint32_t iBaseReg, uint32_t u12ImmDisp) 2438 2438 { 2439 2439 Assert(u12ImmDisp < 4096U); 2440 2440 Assert(iReg < 32); /* 3 2 1 0 */ 2441 Assert(i RegBase< 32); /* 10987654321098765432109876543210 */2441 Assert(iBaseReg < 32); /* 10987654321098765432109876543210 */ 2442 2442 return UINT32_C(0x39000000) /* 0b00111001000000000000000000000000 */ 2443 2443 | (((uint32_t)enmType & (uint32_t)kArmv8A64InstrLdStType_Mask_Size) << (30 - kArmv8A64InstrLdStType_Shift_Size)) … … 2445 2445 | (((uint32_t)enmType & (uint32_t)kArmv8A64InstrLdStType_Mask_Opc) << (22 - kArmv8A64InstrLdStType_Shift_Opc)) 2446 2446 | (u12ImmDisp << 10) 2447 | (i RegBase<< 5)2447 | (iBaseReg << 5) 2448 2448 | iReg; 2449 2449 } … … 2470 2470 */ 2471 2471 DECL_FORCE_INLINE(uint32_t) Armv8A64MkInstrStLdRegIdx(ARMV8A64INSTRLDSTTYPE enmType, 2472 uint32_t iReg, uint32_t i RegBase, uint32_t iRegIndex,2472 uint32_t iReg, uint32_t iBaseReg, uint32_t iRegIndex, 2473 2473 ARMV8A64INSTRLDSTEXTEND enmExtend = kArmv8A64InstrLdStExtend_Lsl, 2474 2474 bool fShifted = false) … … 2476 2476 Assert(iRegIndex < 32); 2477 2477 Assert(iReg < 32); /* 3 2 1 0 */ 2478 Assert(i RegBase< 32); /* 10987654321098765432109876543210 */2478 Assert(iBaseReg < 32); /* 10987654321098765432109876543210 */ 2479 2479 return UINT32_C(0x38200800) /* 0b00111000001000000000100000000000 */ 2480 2480 | (((uint32_t)enmType & (uint32_t)kArmv8A64InstrLdStType_Mask_Size) << (30 - kArmv8A64InstrLdStType_Shift_Size)) … … 2484 2484 | ((uint32_t)enmExtend << 13) 2485 2485 | ((uint32_t)fShifted << 12) 2486 | (i RegBase<< 5)2486 | (iBaseReg << 5) 2487 2487 | iReg; 2488 2488 }
Note:
See TracChangeset
for help on using the changeset viewer.