Skip to content
GitLab
Projects
Groups
Snippets
/
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Sign in
Toggle navigation
Menu
Open sidebar
TASTE
OpenGEODE
Commits
d1582401
Commit
d1582401
authored
Jun 07, 2014
by
dbarbera
Browse files
Added mod/rem expressions generation
parent
6eecc5ac
Changes
1
Hide whitespace changes
Inline
Side-by-side
LlvmGenerator.py
View file @
d1582401
...
...
@@ -281,7 +281,12 @@ def _basic_operators(expr):
elif
expr
.
operand
==
'/'
:
return
builder
.
sdiv
(
lefttmp
,
righttmp
,
'divtmp'
)
elif
expr
.
operand
==
'mod'
:
return
builder
.
srem
(
lefttmp
,
righttmp
,
'modtmp'
)
# l mod r == (((l rem r) + r) rem r)
remtmp
=
builder
.
srem
(
lefttmp
,
righttmp
)
addtmp
=
builder
.
add
(
remtmp
,
righttmp
)
return
builder
.
srem
(
addtmp
,
righttmp
,
'modtmp'
)
elif
expr
.
operand
==
'rem'
:
return
builder
.
srem
(
lefttmp
,
righttmp
,
'remtmp'
)
else
:
raise
NotImplementedError
elif
lefttmp
.
type
.
kind
==
core
.
TYPE_DOUBLE
:
...
...
@@ -294,7 +299,12 @@ def _basic_operators(expr):
elif
expr
.
operand
==
'/'
:
return
builder
.
fdiv
(
lefttmp
,
righttmp
,
'divtmp'
)
elif
expr
.
operand
==
'mod'
:
return
builder
.
frem
(
lefttmp
,
righttmp
,
'modtmp'
)
# l mod r == (((l rem r) + r) rem r)
remtmp
=
builder
.
frem
(
lefttmp
,
righttmp
)
addtmp
=
builder
.
fadd
(
remtmp
,
righttmp
)
return
builder
.
frem
(
addtmp
,
righttmp
,
'modtmp'
)
elif
expr
.
operand
==
'rem'
:
return
builder
.
frem
(
lefttmp
,
righttmp
,
'remtmp'
)
else
:
raise
NotImplementedError
else
:
...
...
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new 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