v0.11.0-alpha.10 749871c

abi_riscv64.h RawHistoryFolder

1// Copyright 2026 The Go Authors. All rights reserved.
2// Use of this source code is governed by a BSD-style
3// license that can be found in the LICENSE file.
4
5// Macros for transitioning from the host ABI to Go ABI0.
6//
7// These macros save and restore the callee-saved registers
8// from the stack, but they don't adjust stack pointer, so
9// the user should prepare stack space in advance.
10// SAVE_GPR(offset) saves X8, X9, X18-X27 to the stack space
11// of ((offset)+0*8)(X2) ~ ((offset)+11*8)(X2).
12//
13// SAVE_FPR(offset) saves F8, F9, F18-F27 to the stack space
14// of ((offset)+0*8)(X2) ~ ((offset)+11*8)(X2).
15//
16// Note: g is X27
17
18#define SAVE_GPR(offset) \
19	MOV X8, ((offset)+0*8)(X2)   \
20	MOV X9, ((offset)+1*8)(X2)   \
21	MOV X18, ((offset)+2*8)(X2)  \
22	MOV X19, ((offset)+3*8)(X2)  \
23	MOV X20, ((offset)+4*8)(X2)  \
24	MOV X21, ((offset)+5*8)(X2)  \
25	MOV X22, ((offset)+6*8)(X2)  \
26	MOV X23, ((offset)+7*8)(X2)  \
27	MOV X24, ((offset)+8*8)(X2)  \
28	MOV X25, ((offset)+9*8)(X2)  \
29	MOV X26, ((offset)+10*8)(X2) \
30	MOV g, ((offset)+11*8)(X2)
31
32#define RESTORE_GPR(offset) \
33	MOV ((offset)+0*8)(X2), X8   \
34	MOV ((offset)+1*8)(X2), X9   \
35	MOV ((offset)+2*8)(X2), X18  \
36	MOV ((offset)+3*8)(X2), X19  \
37	MOV ((offset)+4*8)(X2), X20  \
38	MOV ((offset)+5*8)(X2), X21  \
39	MOV ((offset)+6*8)(X2), X22  \
40	MOV ((offset)+7*8)(X2), X23  \
41	MOV ((offset)+8*8)(X2), X24  \
42	MOV ((offset)+9*8)(X2), X25  \
43	MOV ((offset)+10*8)(X2), X26 \
44	MOV ((offset)+11*8)(X2), g
45
46#define SAVE_FPR(offset) \
47	MOVD F8, ((offset)+0*8)(X2)   \
48	MOVD F9, ((offset)+1*8)(X2)   \
49	MOVD F18, ((offset)+2*8)(X2)  \
50	MOVD F19, ((offset)+3*8)(X2)  \
51	MOVD F20, ((offset)+4*8)(X2)  \
52	MOVD F21, ((offset)+5*8)(X2)  \
53	MOVD F22, ((offset)+6*8)(X2)  \
54	MOVD F23, ((offset)+7*8)(X2)  \
55	MOVD F24, ((offset)+8*8)(X2)  \
56	MOVD F25, ((offset)+9*8)(X2)  \
57	MOVD F26, ((offset)+10*8)(X2) \
58	MOVD F27, ((offset)+11*8)(X2)
59
60#define RESTORE_FPR(offset) \
61	MOVD ((offset)+0*8)(X2), F8   \
62	MOVD ((offset)+1*8)(X2), F9   \
63	MOVD ((offset)+2*8)(X2), F18  \
64	MOVD ((offset)+3*8)(X2), F19  \
65	MOVD ((offset)+4*8)(X2), F20  \
66	MOVD ((offset)+5*8)(X2), F21  \
67	MOVD ((offset)+6*8)(X2), F22  \
68	MOVD ((offset)+7*8)(X2), F23  \
69	MOVD ((offset)+8*8)(X2), F24  \
70	MOVD ((offset)+9*8)(X2), F25  \
71	MOVD ((offset)+10*8)(X2), F26 \
72	MOVD ((offset)+11*8)(X2), F27

Keyboard shortcuts

Single-key shortcuts are on. ctrl k and esc work whatever this says.

ctrl k :
go to a section, branch, tag, file or repository
?
this list
j k
move the row cursor down / up
enter
open the row under the cursor; on Files, a directory opens or closes in place
↑ ↓ ← → home end
in the file tree (focus on a row): previous / next row, close / open a directory or go to its parent / first entry, first / last row. They never open a file
l h
on Files: open a directory or a file / close a directory or go up to its parent, then to the parent page. Elsewhere: into the side panel (on a merge request, its files) / back to the content; there j k move between its controls
g g G
first / last row
/
filter the list; on Files, find a file anywhere in the repository (esc clears, enter opens the best match)
b
switch branch or tag
g s g f g c g b g m g i g r g a
tabs: summary, files, commits, branches & tags, merge requests, issues, releases, actions (when available)
g h
home
w
wide mode: use the whole width of the screen, or not (remembered)
y
copy a permalink pinned to the commit
d u x
diff: split / unified / collapse or expand all
e E
diff: the whole file in view / every file, with the lines the hunks hide
n
merge request: next note in the diff
esc
close a dialog, leave a field

Branches 1

Tags 102

↑↓ moveenter openesc close