Class GoRegisterInfoManager

java.lang.Object
ghidra.app.util.bin.format.golang.GoRegisterInfoManager

public class GoRegisterInfoManager extends Object
XML config file format:
        <golang>
                <register_info versions="V1_17,V1_18,1.20,1.21"> // or "all"
                        <int_registers list="RAX,RBX,RCX,RDI,RSI,R8,R9,R10,R11"/>
                        <float_registers list="XMM0,XMM1,XMM2,XMM3,XMM4,XMM5,XMM6,XMM7,XMM8,XMM9,XMM10,XMM11,XMM12,XMM13,XMM14"/>
                        <stack initialoffset="8" maxalign="8"/>
                        <current_goroutine register="R14"/>
                        <zero_register register="XMM15" builtin="true|false"/>
                        <duffzero dest="RDI" zero_arg="XMM0" zero_type="float|int"/>
                </register_info>
                <register_info versions="V1_2">
                        ...
                </register_info>
        </golang> 
 
  • Constructor Details

    • GoRegisterInfoManager

      public GoRegisterInfoManager()
  • Method Details

    • getInstance

      public static GoRegisterInfoManager getInstance()
    • getRegisterInfoForLang MODIFIED

      public GoRegisterInfo getRegisterInfoForLang(Language lang, GoVer goVer)
      param 2 renamed: goVersion → goVer
      -ghidra.app.util.bin.format.golang.GoRegisterInfo getRegisterInfoForLang(ghidra.program.model.lang.Language lang, ghidra.app.util.bin.format.golang.GoVer goVersion)
      +ghidra.app.util.bin.format.golang.GoRegisterInfo getRegisterInfoForLang(ghidra.program.model.lang.Language lang, ghidra.app.util.bin.format.golang.GoVer goVer)
      Returns a GoRegisterInfo instance for the specified Language.

      If the language didn't define golang register info, a generic/empty instance will be returned that forces all parameters to be stack allocated.

      Parameters:
      lang - Language
      goVer (was: goVersion) - GoVer
      Returns:
      GoRegisterInfo, never null