Skip to content
GitLab
Projects
Groups
Snippets
Help
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
abc-interpreter
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
8
Issues
8
List
Boards
Labels
Service Desk
Milestones
Merge Requests
3
Merge Requests
3
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Operations
Operations
Incidents
Environments
Analytics
Analytics
CI / CD
Repository
Value Stream
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
clean-and-itasks
abc-interpreter
Commits
20a205d0
Verified
Commit
20a205d0
authored
May 18, 2019
by
Camil Staps
🚀
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Minor optimizations, mainly for Reals in the wasm interpreter
parent
39a6d9af
Pipeline
#24465
failed with stages
in 10 minutes and 25 seconds
Changes
2
Pipelines
1
Show whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
23 additions
and
5 deletions
+23
-5
src-js/interpret.js
src-js/interpret.js
+6
-1
tools/interpretergen-wasm/wasm.icl
tools/interpretergen-wasm/wasm.icl
+17
-4
No files found.
src-js/interpret.js
View file @
20a205d0
...
...
@@ -235,11 +235,16 @@ intp = new Uint8Array(intp);
if
(
scriptArgs
.
indexOf
(
'
--extract-code
'
)
>=
0
)
{
var
obj
=
wasmExtractCode
(
intp
.
module
,
'
best
'
);
const
extractable
=
[
'
interpret
'
];
var
exports
=
{};
for
(
var
f
in
intp
.
instance
.
exports
)
exports
[
intp
.
instance
.
exports
[
f
].
name
]
=
f
;
obj
.
segments
.
filter
(
seg
=>
seg
.
kind
==
0
).
map
(
function
(
seg
)
{
obj
.
segments
.
filter
(
function
(
seg
)
{
return
seg
.
kind
==
0
&&
extractable
.
indexOf
(
exports
[
seg
.
funcIndex
])
>=
0
;
}).
map
(
function
(
seg
)
{
var
name
=
seg
.
funcIndex
in
exports
?
exports
[
seg
.
funcIndex
]
:
(
'
_
'
+
seg
.
funcIndex
);
var
filename
=
'
disas-
'
+
name
+
'
.bin
'
;
var
code
=
obj
.
code
.
subarray
(
seg
.
funcBodyBegin
,
seg
.
funcBodyEnd
);
...
...
tools/interpretergen-wasm/wasm.icl
View file @
20a205d0
...
...
@@ -281,7 +281,14 @@ optimize set e = case e of
Ediv
t
signed
a
b
->
Ediv
t
signed
(
optimize
set
a
)
(
optimize
set
b
)
Erem
t
signed
a
b
->
Erem
t
signed
(
optimize
set
a
)
(
optimize
set
b
)
Eeq
t
a
b
->
Eeq
t
(
optimize
set
a
)
(
optimize
set
b
)
Eeq
t
a
b
->
case
oa
of
Econst
_
v
|
is_zero
v
->
Eeqz
t
ob
_
->
case
ob
of
Econst
_
v
|
is_zero
v
->
Eeqz
t
oa
_
->
Eeq
t
oa
ob
with
oa
=
optimize
set
a
ob
=
optimize
set
b
Ene
t
a
b
->
Ene
t
(
optimize
set
a
)
(
optimize
set
b
)
Elt
t
signed
a
b
->
Elt
t
signed
(
optimize
set
a
)
(
optimize
set
b
)
Egt
t
signed
a
b
->
Egt
t
signed
(
optimize
set
a
)
(
optimize
set
b
)
...
...
@@ -306,7 +313,13 @@ optimize set e = case e of
e
->
Ewrap
to
fr
e
Eextend
to
fr
e
->
Eextend
to
fr
(
optimize
set
e
)
Ereinterpret
to
fr
e
->
Ereinterpret
to
fr
(
optimize
set
e
)
Ereinterpret
to
fr
e
->
case
optimize
set
e
of
Eload
ltype
stype
signed
o
a
|
fr
==
ltype
->
Eload
to
stype
signed
o
a
e
->
Ereinterpret
to
fr
e
Etrunc
to
fr
e
->
Etrunc
to
fr
(
optimize
set
e
)
Econvert
to
fr
e
->
Econvert
to
fr
(
optimize
set
e
)
...
...
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