Table of contents

TRANSPORTUIP - Microcode Subroutine Call Setup

Purpose

TRANSPORTUIP prepares for microcode subroutine execution by saving a return address. It does NOT perform the actual jump - a subsequent U_JCC or U_JMP instruction does that. Return from subroutine happnes via U_JMP_INDIR or using some flow bits (xxx need to clarify this).

Operation

result = TRANSPORTUIP(CONST, target_label, IA.11, U3.01)

Example

TMP8 = TRANSPORTUIP(CONST, part_macro_fxsave_alt, IA.11, U3.01)
// TMP8 contains internal state (not directly usable)
// Actual jump happens next (implicitly or explicitly)

Subroutine Return

Example from FXSAVE

// Main path:
TMP8 = TRANSPORTUIP(CONST, part_macro_fxsave_alt, IA.11, U3.01)
[... store FP registers ...]

// At part_macro_fxsave_alt:
[... alternate FP register stores ...]
EOM + ???FL2??? // With return flag - goes back to main path

Cpuid in some cache CRBUS handling subroutine also uses U_JMP.INDIR to return back from subroutine.

Notes

OLDER NOTES:

Typical micro-subroutine call

Example with TMP5 used as return address from subroutine:

...
TMP5 =         TRANSPORTUIP   (CONST         , loc_ret  , IA_11, U3_01)
...
U_JMP_NT       (CONST         , sub_xyz  , IA_11, U3_1B)
loc_ret:
...


# microcode subroutine
sub_xyz:
...
U_JMP_INDIR_N  (CONST_0       , TMP5          , U3_40)

The author is not affiliated with, endorsed by, or sponsored by Intel Corporation or its affiliates. All trademarks, including but not limited to Intel, Pentium, and any other registered or unregistered marks mentioned herein, are the property of their respective owners. Their use in this context is solely for descriptive and informational purposes and constitutes nominative fair use under applicable trademark laws.
  • index page
  • uop description
  • ADC
  • ADD
  • AND
  • BSF
  • BSR
  • BSWAP
  • BTEST
  • DIV
  • FANDNOT
  • FCALCTW
  • FCMOV
  • FCOM
  • FMERGE
  • FMOV
  • FPEXTRACT
  • FPORDATATYPE
  • FPSIGNEXT
  • FREADROM
  • FXORS
  • IDIV
  • IMUL
  • INTEXTRACT
  • LEA
  • LOAD
  • MOVE
  • MOVEFROMCREG
  • MOVETOCREG
  • MUL
  • OR
  • PORTIN
  • PORTOUT
  • RCL
  • RCR
  • RDSEGFLD
  • ROL
  • ROR
  • SAL
  • SAR
  • SBC
  • SHL
  • SHR
  • SIGEVENT
  • STA
  • STRD
  • SUB
  • SUBR
  • TRANSPORTUIP
  • UOP
  • U_JCC
  • U_JMP
  • U_JMP_INDIR
  • WRSEGFLD
  • WUCONCAT
  • WUEXTRBK
  • WUINSERT
  • WUMERGE
  • XOR