Skip to content

Commit dbcca7c

Browse files
committed
2 parents 1a0517e + 385f2fa commit dbcca7c

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

46 files changed

+1072
-199
lines changed

api-docs/spelling.txt

Lines changed: 231 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,231 @@
1+
dev
2+
decompilation
3+
Flowgraph
4+
flowgraph
5+
headlessly
6+
func
7+
minLevel
8+
BasicBlockList
9+
websocket
10+
Subclasses
11+
subclasses
12+
subclassed
13+
mips32
14+
llvm
15+
mc
16+
yasm
17+
nop
18+
disassembler
19+
len
20+
lowlevelil
21+
mediumlevelil
22+
highlevelil
23+
py
24+
url
25+
gui
26+
websocketprovider
27+
desc
28+
ver
29+
signedness
30+
const
31+
InstructionTextToken
32+
parsable
33+
param
34+
namespace
35+
addr
36+
regs
37+
sym
38+
enum
39+
preproccessed
40+
QualifiedNameType
41+
typecontainer
42+
typelibrary
43+
guid
44+
typeprinter
45+
Preprocess
46+
typeparser
47+
libc
48+
musl
49+
api
50+
lookups
51+
QualifiedName
52+
Unregister
53+
readOnly
54+
requiresRestart
55+
uiSelectionAction
56+
typearchive
57+
SettingsUserScope
58+
maxValue
59+
minValue
60+
enumDescriptions
61+
elementType
62+
json
63+
deserializing
64+
schemas
65+
callsite
66+
secretsprovider
67+
kwargs
68+
args
69+
bnpr
70+
bndb
71+
bnpm
72+
pluginmanager
73+
scriptingprovider
74+
globals
75+
cancelation
76+
cancelled
77+
cancelable
78+
programmatically
79+
stdcall
80+
il
81+
cdecl
82+
fastcall
83+
iterable
84+
postfix
85+
Tailcall
86+
indexable
87+
unsplit
88+
splittable
89+
llil
90+
mlil
91+
hlil
92+
ssa
93+
dataflow
94+
macOS
95+
goto
96+
pre
97+
bitwise
98+
Plaintext
99+
plaintext
100+
whitespace
101+
pyside
102+
pre
103+
init
104+
fini
105+
dll
106+
namespaces
107+
unparented
108+
matcher
109+
endianness
110+
endian
111+
Endianness
112+
accessor
113+
os
114+
Pathlike
115+
FileAccessor
116+
fileaccessor
117+
enums
118+
TagTypeType
119+
pythonic
120+
mainthread
121+
lineardisassembly
122+
functionrecognizer
123+
inlined
124+
str
125+
reimplementation
126+
subgraphs
127+
subgraph
128+
liveness
129+
nav
130+
undoable
131+
interop
132+
filemetadata
133+
externallibrary
134+
downloadprovider
135+
docstring
136+
unittests
137+
simplifier
138+
templated
139+
demangled
140+
demangles
141+
demangler
142+
demangle
143+
dlang
144+
itanium
145+
msvc
146+
parsers
147+
debuginfo
148+
stdout
149+
stdin
150+
aarch
151+
armv
152+
rebase
153+
rebased
154+
MetadataValueType
155+
binaryninja
156+
backend
157+
Windbg
158+
pc
159+
bv
160+
debuggercontroller
161+
dword
162+
qword
163+
rebasing
164+
debugadaptertype
165+
reStructured
166+
renderer
167+
kvs
168+
databuffer
169+
callingconvention
170+
Pathname
171+
pathname
172+
Pathnames
173+
pathnames
174+
autoanalysis
175+
ReferenceSource
176+
TypeFieldReference
177+
bss
178+
shannon
179+
CoreSymbol
180+
quadword
181+
datarender
182+
getattr
183+
commonil
184+
dir
185+
getattr
186+
readline
187+
selectable
188+
attr
189+
bncompleter
190+
DataBuffer
191+
PathLike
192+
evaluable
193+
unregisters
194+
undefine
195+
tagRECT
196+
winX
197+
typelib
198+
dest
199+
autoanalysis
200+
unassociated
201+
ith
202+
getter
203+
setter
204+
callee
205+
callees
206+
nops
207+
linearsweep
208+
signaturematcher
209+
metaclass
210+
mips
211+
ExpressionIndex
212+
CallingConvention
213+
basedetection
214+
basicblock
215+
DisassemblyTextLine
216+
dominator
217+
dominators
218+
binaryview
219+
queryable
220+
prefetch
221+
quiesces
222+
quiesced
223+
quiescing
224+
subclassing
225+
Comparison
226+
dereferencing
227+
dereference
228+
deconflicted
229+
guids
230+
cbreak
231+
overridable

arch/arm64/arch_arm64.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1511,7 +1511,7 @@ class Arm64Architecture : public Architecture
15111511
case IL_FLAG_Z:
15121512
return ZeroFlagRole;
15131513
case IL_FLAG_C:
1514-
return CarryFlagRole;
1514+
return CarryFlagWithInvertedSubtractRole;
15151515
case IL_FLAG_V:
15161516
return OverflowFlagRole;
15171517
default:

arch/armv7/arch_armv7.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1734,7 +1734,7 @@ BNFlagRole ArmCommonArchitecture::GetFlagRole(uint32_t flag, uint32_t)
17341734
case IL_FLAG_Z:
17351735
return ZeroFlagRole;
17361736
case IL_FLAG_C:
1737-
return CarryFlagRole;
1737+
return CarryFlagWithInvertedSubtractRole;
17381738
case IL_FLAG_V:
17391739
return OverflowFlagRole;
17401740
default:

arch/mips/arch_mips.cpp

Lines changed: 72 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -928,6 +928,8 @@ class MipsArchitecture: public Architecture
928928
return "moveDwordToCoprocessorUnimplemented";
929929
case MIPS_INTRIN_SYNC:
930930
return "_sync";
931+
case MIPS_INTRIN_SYNCI:
932+
return "_SynchronizeCacheLines";
931933
case MIPS_INTRIN_EI:
932934
return "_enableInterrupts";
933935
case MIPS_INTRIN_DI:
@@ -936,6 +938,8 @@ class MipsArchitecture: public Architecture
936938
return "_clearExecutionHazards";
937939
case MIPS_INTRIN_WAIT:
938940
return "_enterLowPowerMode";
941+
case MIPS_INTRIN_PAUSE:
942+
return "_waitForLLbitClear";
939943
case MIPS_INTRIN_HWR0:
940944
return "_cpuNum";
941945
case MIPS_INTRIN_HWR1:
@@ -956,6 +960,8 @@ class MipsArchitecture: public Architecture
956960
return "_prefetch";
957961
case MIPS_INTRIN_CACHE:
958962
return "_cache";
963+
case MIPS_INTRIN_SDBBP:
964+
return "_softwareDebugBreakpoint";
959965
case MIPS_INTRIN_GET_LEFT_PART32:
960966
return "_getLeftPart32";
961967
case MIPS_INTRIN_GET_RIGHT_PART32:
@@ -972,6 +978,16 @@ class MipsArchitecture: public Architecture
972978
return "_setLeftPart64";
973979
case MIPS_INTRIN_SET_RIGHT_PART64:
974980
return "_setRightPart64";
981+
case MIPS_INTRIN_TLBSET:
982+
return "_writeTLB";
983+
case MIPS_INTRIN_TLBGET:
984+
return "_readTLB";
985+
case MIPS_INTRIN_TLBSEARCH:
986+
return "_probeTLB";
987+
case MIPS_INTRIN_TLBINV:
988+
return "_invalidateTLB";
989+
case MIPS_INTRIN_TLBINVF:
990+
return "_invalidateTLBFlush";
975991

976992
case CNMIPS_INTRIN_SYNCIOBDMA:
977993
return "_synciobdma";
@@ -1009,10 +1025,12 @@ class MipsArchitecture: public Architecture
10091025
MIPS_INTRIN_DMTC0,
10101026
MIPS_INTRIN_DMTC_UNIMPLEMENTED,
10111027
MIPS_INTRIN_SYNC,
1028+
MIPS_INTRIN_SYNCI,
10121029
MIPS_INTRIN_DI,
10131030
MIPS_INTRIN_EHB,
10141031
MIPS_INTRIN_EI,
10151032
MIPS_INTRIN_WAIT,
1033+
MIPS_INTRIN_PAUSE,
10161034
MIPS_INTRIN_HWR0,
10171035
MIPS_INTRIN_HWR1,
10181036
MIPS_INTRIN_HWR2,
@@ -1031,6 +1049,11 @@ class MipsArchitecture: public Architecture
10311049
MIPS_INTRIN_GET_RIGHT_PART64,
10321050
MIPS_INTRIN_SET_LEFT_PART64,
10331051
MIPS_INTRIN_SET_RIGHT_PART64,
1052+
MIPS_INTRIN_TLBSET,
1053+
MIPS_INTRIN_TLBGET,
1054+
MIPS_INTRIN_TLBSEARCH,
1055+
MIPS_INTRIN_TLBINV,
1056+
MIPS_INTRIN_TLBINVF,
10341057

10351058
CNMIPS_INTRIN_SYNCIOBDMA,
10361059
CNMIPS_INTRIN_SYNCS,
@@ -1100,6 +1123,10 @@ class MipsArchitecture: public Architecture
11001123
return {
11011124
NameAndType("stype", Type::IntegerType(4, false)),
11021125
};
1126+
case MIPS_INTRIN_SYNCI:
1127+
return {
1128+
NameAndType("vaddr", Type::IntegerType(8, false)),
1129+
};
11031130
case MIPS_INTRIN_HWR_UNKNOWN:
11041131
return {
11051132
NameAndType("hwreg", Type::IntegerType(4, false)),
@@ -1115,6 +1142,11 @@ class MipsArchitecture: public Architecture
11151142
NameAndType("address", Type::IntegerType(m_bits == 64 ? 8 : 4, false)),
11161143
};
11171144

1145+
case MIPS_INTRIN_SDBBP:
1146+
return {
1147+
NameAndType("code", Type::IntegerType(1, false)),
1148+
};
1149+
11181150
// NOTE: SET_x_PARTx could potentially benefit from
11191151
// including the old value as an input (since each
11201152
// only sets part of the register and keeps the
@@ -1161,6 +1193,33 @@ class MipsArchitecture: public Architecture
11611193
return {
11621194
NameAndType("rightpart", Type::IntegerType(8, false))
11631195
};
1196+
case MIPS_INTRIN_TLBSET:
1197+
return {
1198+
// we use the same order as the pseudocode
1199+
// in the documentation
1200+
NameAndType("index", Type::IntegerType(8, false)),
1201+
NameAndType("PageMask", Type::IntegerType(8, false)),
1202+
NameAndType("EntryHi", Type::IntegerType(8, false)),
1203+
NameAndType("EntryLo1", Type::IntegerType(8, false)),
1204+
NameAndType("EntryLo0", Type::IntegerType(8, false))
1205+
};
1206+
case MIPS_INTRIN_TLBGET:
1207+
return {
1208+
NameAndType("index", Type::IntegerType(8, false)),
1209+
};
1210+
case MIPS_INTRIN_TLBSEARCH:
1211+
return {
1212+
NameAndType("match", Type::IntegerType(8, false)),
1213+
};
1214+
case MIPS_INTRIN_TLBINV:
1215+
return {
1216+
NameAndType("index", Type::IntegerType(8, false)),
1217+
NameAndType("match", Type::IntegerType(8, false)),
1218+
};
1219+
case MIPS_INTRIN_TLBINVF:
1220+
return {
1221+
NameAndType("index", Type::IntegerType(8, false)),
1222+
};
11641223
default:
11651224
return vector<NameAndType>();
11661225
}
@@ -1204,6 +1263,19 @@ class MipsArchitecture: public Architecture
12041263
case MIPS_INTRIN_SET_LEFT_PART64:
12051264
case MIPS_INTRIN_SET_RIGHT_PART64:
12061265
return {Type::IntegerType(8, false)};
1266+
case MIPS_INTRIN_TLBGET:
1267+
return {
1268+
// we use the same order as the pseudocode
1269+
// in the documentation:
1270+
1271+
// PageMask, EntryHi, EntryLo1, EntryLo0
1272+
Type::IntegerType(8, false),
1273+
Type::IntegerType(8, false),
1274+
Type::IntegerType(8, false),
1275+
Type::IntegerType(8, false),
1276+
};
1277+
case MIPS_INTRIN_TLBSEARCH:
1278+
return { Type::IntegerType(8, false) };
12071279
default:
12081280
return vector<Confidence<Ref<Type>>>();
12091281
}

0 commit comments

Comments
 (0)