aboutsummaryrefslogtreecommitdiffstats
path: root/erts/emulator/beam/ops.tab
diff options
context:
space:
mode:
authorBjörn Gustavsson <[email protected]>2010-04-07 13:18:24 +0200
committerBjörn Gustavsson <[email protected]>2010-04-07 13:25:02 +0200
commitfd9bb9fb7323ead417fff0cbb7a077b342446a77 (patch)
tree6841f2c97ce249bc44ec7d4485cd533ae7690df6 /erts/emulator/beam/ops.tab
parent6fd69d6ca5cea3aae4afce7544ba6b729221885c (diff)
downloadotp-fd9bb9fb7323ead417fff0cbb7a077b342446a77.tar.gz
otp-fd9bb9fb7323ead417fff0cbb7a077b342446a77.tar.bz2
otp-fd9bb9fb7323ead417fff0cbb7a077b342446a77.zip
erts: Fix loading of modules with invalid floating point arithmetic
The following program is supposed to cause an exception at run-time: foo() -> Sum1 = Sum2 = N = 2, pSum - (Sum1*(Sum2/N)). but the loader fails to load because it contains the following instruction: fconv {atom,pSum} {fr,2} Fix the loader so that it can handle fconv instructions where the first operand is a non-numeric literal. Reported-by: Torbjörn Törnkvist
Diffstat (limited to 'erts/emulator/beam/ops.tab')
-rw-r--r--erts/emulator/beam/ops.tab2
1 files changed, 1 insertions, 1 deletions
diff --git a/erts/emulator/beam/ops.tab b/erts/emulator/beam/ops.tab
index 231ea34fd5..9e8ac74f40 100644
--- a/erts/emulator/beam/ops.tab
+++ b/erts/emulator/beam/ops.tab
@@ -1304,7 +1304,7 @@ fmul p FR1 FR2 FR3 => i_fmul FR1 FR2 FR3
fdiv p FR1 FR2 FR3 => i_fdiv FR1 FR2 FR3
fnegate p FR1 FR2 => i_fnegate FR1 FR2
-fconv Int=iq Dst=l => move Int x | fconv x Dst
+fconv Arg=iqan Dst=l => move Arg x | fconv x Dst
fmove q l
fmove d l