Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
G
gdsl-toolkit
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Tanzeem Haque
gdsl-toolkit
Commits
b8f04a43
Commit
b8f04a43
authored
Oct 12, 2012
by
Julian Kranz
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
X86 RREIL Translator
X86 Specification - Added semantics of: MOVS/MOVSB/MOVSW/MOVSD/MOVSQ - Bug fixes
parent
0f671620
Changes
3
Show whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
19 additions
and
15 deletions
+19
-15
specifications/x86/x86-pretty.ml
specifications/x86/x86-pretty.ml
+2
-3
specifications/x86/x86-rreil-translator.ml
specifications/x86/x86-rreil-translator.ml
+9
-3
specifications/x86/x86.ml
specifications/x86/x86.ml
+8
-9
No files found.
specifications/x86/x86-pretty.ml
View file @
b8f04a43
...
...
@@ -539,11 +539,10 @@ val show/instruction insn =
|
MOVNTQ
x
:
"MOVNTQ"
-++
show
/
arity2
x
|
MOVQ
x
:
"MOVQ"
-++
show
/
arity2
x
|
MOVQ2DQ
x
:
"MOVQ2DQ"
-++
show
/
arity2
x
|
MOVS
B
:
"MOVSB"
|
MOVSD
x
:
"MOVSD"
-++
show
/
varity
x
|
MOVS
x
:
"MOVS"
-++
show
/
arity2
x
|
MOVSD
x
:
"MOVSD"
-++
show
/
arity2
x
|
MOVSHDUP
x
:
"MOVSHDUP"
-++
show
/
arity2
x
|
MOVSLDUP
x
:
"MOVSLDUP"
-++
show
/
arity2
x
|
MOVSQ
:
"MOVSQ"
|
MOVSS
x
:
"MOVSS"
-++
show
/
arity2
x
|
MOVSW
x
:
"MOVSW"
-++
show
/
arity2
x
|
MOVSX
x
:
"MOVSX"
-++
show
/
arity2
x
...
...
specifications/x86/x86-rreil-translator.ml
View file @
b8f04a43
...
...
@@ -1209,6 +1209,13 @@ val sem-vmovap x = do
commit
sz
dst
(
var
temp
)
end
val
sem
-
movs
x
=
do
sz
<-
sizeof1
x
.
opnd1
;
src
<-
read
sz
x
.
opnd2
;
dst
<-
write
sz
x
.
opnd1
;
commit
sz
dst
src
end
val
sem
-
movsx
x
=
do
sz
-
dst
<-
sizeof1
x
.
opnd1
;
sz
-
src
<-
sizeof1
x
.
opnd2
;
...
...
@@ -2170,11 +2177,10 @@ val semantics insn =
|
MOVNTQ
x
:
sem
-
undef
-
arity2
x
|
MOVQ
x
:
sem
-
undef
-
arity2
x
|
MOVQ2DQ
x
:
sem
-
undef
-
arity2
x
|
MOVS
B
x
:
sem
-
undef
-
arity0
x
|
MOVSD
x
:
sem
-
undef
-
varity
x
|
MOVS
x
:
sem
-
movs
x
|
MOVSD
x
:
sem
-
undef
-
arity2
x
|
MOVSHDUP
x
:
sem
-
undef
-
arity2
x
|
MOVSLDUP
x
:
sem
-
undef
-
arity2
x
|
MOVSQ
x
:
sem
-
undef
-
arity0
x
|
MOVSS
x
:
sem
-
undef
-
arity2
x
|
MOVSW
x
:
sem
-
undef
-
arity2
x
|
MOVSX
x
:
sem
-
movsx
x
...
...
specifications/x86/x86.ml
View file @
b8f04a43
...
...
@@ -908,11 +908,10 @@ type insn =
|
MOVNTQ
of
arity2
|
MOVQ
of
arity2
|
MOVQ2DQ
of
arity2
|
MOVS
B
of
arity0
|
MOVSD
of
varity
|
MOVS
of
arity2
|
MOVSD
of
arity2
|
MOVSHDUP
of
arity2
|
MOVSLDUP
of
arity2
|
MOVSQ
of
arity0
|
MOVSS
of
arity2
|
MOVSW
of
arity2
|
MOVSX
of
arity2
...
...
@@ -4072,18 +4071,18 @@ val /f3 [0x0f 0xd6 /r-reg] = binop MOVQ2DQ xmm128 mm/reg64
###
MOVS
/
MOVSB
/
MOVSW
/
MOVSD
/
MOVSQ
###
-
Move
Data
from
String
to
String
val
/
[
0xa4
]
=
arity0
MOVSB
val
/
[
0xa4
]
=
binop
MOVS
(
m
/
default
/
si
/
esi
/
rsi
(
return
8
))
(
m
/
es
/
di
/
edi
/
rdi
(
return
8
))
val
/
[
0xa5
]
|
opndsz
?
=
arity0
MOVSB
|
rexw
?
=
arity0
MOVSQ
|
otherwise
=
varity0
MOVSD
|
opndsz
?
=
binop
MOVS
(
m
/
default
/
si
/
esi
/
rsi
operand
-
size
)
(
m
/
es
/
di
/
edi
/
rdi
operand
-
size
)
|
rexw
?
=
binop
MOVS
(
m
/
default
/
si
/
esi
/
rsi
operand
-
size
)
(
m
/
es
/
di
/
edi
/
rdi
operand
-
size
)
|
otherwise
=
binop
MOVS
(
m
/
default
/
si
/
esi
/
rsi
operand
-
size
)
(
m
/
es
/
di
/
edi
/
rdi
operand
-
size
)
###
MOVSD
###
-
Move
Scalar
Double
-
Precision
Floating
-
Point
Value
val
/
f2
[
0x0f
0x10
/
r
]
=
varity2
MOVSD
xmm128
xmm
/
m64
val
/
f2
[
0x0f
0x10
/
r
]
=
binop
MOVSD
xmm128
xmm
/
m64
val
/
vex
/
f2
/
0
f
/
vexv
[
0x10
/
r
-
reg
]
=
varity3
VMOVSD
xmm128
v
/
xmm
xmm
/
reg128
val
/
vex
/
f2
/
0
f
[
0x10
/
r
-
mem
]
=
varity2
VMOVSD
xmm128
m64
val
/
f2
[
0x0f
0x11
/
r
]
=
varity2
MOVSD
xmm
/
m64
xmm128
val
/
f2
[
0x0f
0x11
/
r
]
=
binop
MOVSD
xmm
/
m64
xmm128
val
/
vex
/
f2
/
0
f
[
0x11
/
r
-
reg
]
=
varity3
VMOVSD
xmm
/
reg128
v
/
xmm
xmm128
val
/
vex
/
f2
/
0
f
[
0x11
/
r
-
mem
]
=
varity2
VMOVSD
m64
xmm128
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment