diff options
author | Araq <rumpf_a@web.de> | 2014-07-16 00:41:03 +0200 |
---|---|---|
committer | Araq <rumpf_a@web.de> | 2014-07-16 00:41:03 +0200 |
commit | a7911addf71fdfbf5008afd938b49116d462d908 (patch) | |
tree | d1ce9e4306882f722da587bce7992ebe632aab24 /compiler/vmgen.nim | |
parent | 396b5619fc72ccc4a2f2110fd59b21e0a8a7250e (diff) | |
download | Nim-a7911addf71fdfbf5008afd938b49116d462d908.tar.gz |
parseBiggestFloat is now builtin
Diffstat (limited to 'compiler/vmgen.nim')
-rw-r--r-- | compiler/vmgen.nim | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/compiler/vmgen.nim b/compiler/vmgen.nim index c1ec637dd..fd0c3fc69 100644 --- a/compiler/vmgen.nim +++ b/compiler/vmgen.nim @@ -852,6 +852,24 @@ proc genMagic(c: PCtx; n: PNode; dest: var TDest) = c.freeTemp(tmp1) c.freeTemp(tmp2) c.freeTemp(tmp3) + of mParseBiggestFloat: + if dest < 0: dest = c.getTemp(n.typ) + var d2: TRegister + # skip 'nkHiddenAddr': + let d2AsNode = n.sons[2].sons[0] + if needsAsgnPatch(d2AsNode): + d2 = c.getTemp(getSysType(tyFloat)) + else: + d2 = c.genx(d2AsNode) + var + tmp1 = c.genx(n.sons[1]) + tmp3 = c.genx(n.sons[3]) + c.gABC(n, opcParseFloat, dest, tmp1, d2) + c.gABC(n, opcParseFloat, tmp3) + c.freeTemp(tmp1) + c.freeTemp(tmp3) + c.genAsgnPatch(d2AsNode, d2) + c.freeTemp(d2) of mReset: unused(n, dest) var d = c.genx(n.sons[1]) |