Package ghidra.app.util.bin.format.golang

# 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">
                            <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"/>
                    </register_info>
                    <register_info versions="V1_2">
                            ...
                    </register_info>
            </golang>

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `GoRegisterInfoManager()`

- ## Method Summary

  Modifier and Type
  Method
  Description
  `static GoRegisterInfoManager`
  `getInstance()`
  `GoRegisterInfo`
  `getRegisterInfoForLang(Language lang, GoVer goVersion)`
  Returns a `GoRegisterInfo` instance for the specified `Language`.

  ### Methods inherited from class java.lang.Object

  `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- ## Constructor Details

  - ### GoRegisterInfoManager

    public GoRegisterInfoManager()

- ## Method Details

  - ### getInstance

    public static GoRegisterInfoManager getInstance()

  - ### getRegisterInfoForLang

    public GoRegisterInfo getRegisterInfoForLang(Language lang, GoVer goVersion)
    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`
      `goVersion` - `GoVer` enum
    Returns:
      `GoRegisterInfo`, never null