
#13442: Add a coercion/cast operator to CMM -------------------------------------+------------------------------------- Reporter: erikd | Owner: (none) Type: bug | Status: new Priority: normal | Milestone: 8.4.1 Component: Compiler | Version: 8.0.1 Resolution: | Keywords: Operating System: Unknown/Multiple | Architecture: | Unknown/Multiple Type of failure: None/Unknown | Test Case: Blocked By: | Blocking: Related Tickets: | Differential Rev(s): Wiki Page: | -------------------------------------+------------------------------------- Comment (by rwbarton): Replying to [comment:1 erikd]:
For the time being, I'm going with the following syntax: {{{ _c2::F64 = <F64> I64[Sp + -1 * 8]; }}} where the `<F64>` is the cast destination type.
I'm a little confused, is this supposed to be valid input Cmm? I thought I got a syntax error when I tried writing things like {{{ a = I64[Sp - WDS(1)]; }}} but if you can write that, then the version for a double should certainly be {{{ a = F64[Sp - WDS(1)]; }}} and not involve any sort of "cast". -- Ticket URL: http://ghc.haskell.org/trac/ghc/ticket/13442#comment:4 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler