private void createActions() {

		setRegisterAction = new DockingAction("Set Register Values", getName()) {
			@Override
			public void actionPerformed(ActionContext actionContext) {
				ProgramLocationActionContext programActionContext =
					getProgramActionContext(actionContext);
				setRegisterValues(programActionContext);
			}

			@Override
			public boolean isEnabledForContext(ActionContext context) {
				Object contextObject = context.getContextObject();
				return (contextObject instanceof ListingActionContext) ||
					(contextObject instanceof RegisterManagerProvider);
			}
		};
		setRegisterAction.setPopupMenuData(
			new MenuData(new String[] { "Set Register Values..." }, null, "Registers"));
		setRegisterAction.setKeyBindingData(
			new KeyBindingData(KeyEvent.VK_R, InputEvent.CTRL_DOWN_MASK));

		setRegisterAction.setDescription("Set register values in a program.");
		setRegisterAction.setHelpLocation(new HelpLocation("RegisterPlugin", "SetRegisterValues"));
		setRegisterAction.setEnabled(true);

		tool.addAction(setRegisterAction);

		clearRegisterAction = new DockingAction("Clear Register Values", getName()) {
			@Override
			public void actionPerformed(ActionContext actionContext) {
				ProgramLocationActionContext programActionContext =
					getProgramActionContext(actionContext);
				clearRegisterValues(programActionContext);
			}

			@Override
			public boolean isEnabledForContext(ActionContext context) {
				Object contextObject = context.getContextObject();
				return (contextObject instanceof ListingActionContext) ||
					(contextObject instanceof RegisterManagerProvider);
			}
		};
		clearRegisterAction.setPopupMenuData(
			new MenuData(new String[] { "Clear Register Values..." }, null, "Registers"));

		clearRegisterAction.setDescription("Clear register values in a program.");
		clearRegisterAction.setHelpLocation(
			new HelpLocation("RegisterPlugin", "ClearRegisterValues"));
		clearRegisterAction.setEnabled(true);

		tool.addAction(clearRegisterAction);

		deleteRegisterRangeAction =
			new ListingContextAction("Delete Register Value Range", getName()) {
				@Override
				public void actionPerformed(ListingActionContext context) {
					deleteRegisterValueRange(context);
				}

				@Override
				public boolean isEnabledForContext(ListingActionContext context) {
					if (context.getLocation() instanceof RegisterTransitionFieldLocation) {
						RegisterTransitionFieldLocation loc =
							(RegisterTransitionFieldLocation) context.getLocation();
						if (loc.getRegister() != null) {
							Address addr = loc.getAddress();
							Register reg = loc.getRegister();
							RegisterValue regVal =
								context.getProgram().getProgramContext().getNonDefaultValue(reg,
									addr);
							return regVal != null && regVal.hasValue();
						}
					}
					return false;
				}
			};
		deleteRegisterRangeAction.setKeyBindingData(new KeyBindingData(KeyEvent.VK_DELETE, 0));

		deleteRegisterRangeAction.setDescription("Delete register value at Function.");
		deleteRegisterRangeAction.setHelpLocation(
			new HelpLocation("RegisterPlugin", "DeleteRegisterValueRange"));
		deleteRegisterRangeAction.setEnabled(true);

		tool.addAction(deleteRegisterRangeAction);

		deleteRegisterAtFunctionAction =
			new ListingContextAction("Delete Register Value Range", getName()) {
				@Override
				public void actionPerformed(ListingActionContext context) {
					deleteRegisterValueAtFunction(context);
				}

				@Override
				public boolean isEnabledForContext(ListingActionContext context) {
					if (context.getLocation() instanceof RegisterFieldLocation) {
						RegisterFieldLocation loc = (RegisterFieldLocation) context.getLocation();
						if (loc.getRegister() != null) {
							Address addr = loc.getAddress();
							Register reg = loc.getRegister();
							RegisterValue regVal =
								context.getProgram().getProgramContext().getNonDefaultValue(reg,
									addr);
							return regVal != null && regVal.hasValue();
						}
					}
					return false;
				}
			};
		deleteRegisterAtFunctionAction.setPopupMenuData(
			new MenuData(new String[] { "Delete Register Value Range..." }, null, "Registers"));
		deleteRegisterAtFunctionAction.setKeyBindingData(new KeyBindingData(KeyEvent.VK_DELETE, 0));

		deleteRegisterAtFunctionAction.setDescription("Delete register value range.");
		deleteRegisterAtFunctionAction.setHelpLocation(
			new HelpLocation("RegisterPlugin", "DeleteRegisterValueRange"));
		deleteRegisterAtFunctionAction.setEnabled(true);

		tool.addAction(deleteRegisterAtFunctionAction);

		registerMgrProvider.createActions();
	}
Shows the registers available in a program along with any values that are set.
Ghidra/Features/Base/src/main/java/ghidra/app/plugin/core/register/RegisterPlugin.java