@@ -188,6 +188,7 @@ initDefs tgt =
188188 , exfun "__idris_gmpMalloc" ptrI8 [intPtr] False
189189 , exfun "__idris_gmpRealloc" ptrI8 [ptrI8, intPtr, intPtr] False
190190 , exfun "__idris_gmpFree" VoidType [ptrI8, intPtr] False
191+ , exfun "__idris_strRev" ptrI8 [ptrI8] False
191192 , exfun "strtoll" (IntegerType 64) [ptrI8, PointerType ptrI8 (AddrSpace 0), IntegerType 32] False
192193 , exVar (stdinName tgt) ptrI8
193194 , exVar (stdoutName tgt) ptrI8
@@ -1027,6 +1028,10 @@ cgOp LStrLen [s] = do
10271028 | x < 32 -> inst $ ZExt len (IntegerType 32) []
10281029 box (FArith (ATInt (ITFixed IT32))) len'
10291030
1031+cgOp LStrRev [s] = do
1032+ ns <- unbox FString s
1033+ box FString =<< inst (simpleCall "__idris_strRev" [ns])
1034+
10301035cgOp LReadStr [p] = do
10311036 np <- unbox FPtr p
10321037 s <- inst $ simpleCall "__idris_readStr" [np]