diff options
author | John Hodge <tpg@ucc.asn.au> | 2017-05-26 12:04:39 +0800 |
---|---|---|
committer | John Hodge <tpg@ucc.asn.au> | 2017-05-26 12:04:39 +0800 |
commit | 74759c0172a4aac97a3f628e3adc92c3cdb731f3 (patch) | |
tree | 57d27c2314a979b8c9e69e3b4323560fe9ed420f /src/trans/codegen_c.cpp | |
parent | 9b601b5e953d0b576d1cb9c3bf91305cab95d0b1 (diff) | |
download | mrust-74759c0172a4aac97a3f628e3adc92c3cdb731f3.tar.gz |
Codegen C - Handle signed bswap
Diffstat (limited to 'src/trans/codegen_c.cpp')
-rw-r--r-- | src/trans/codegen_c.cpp | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/src/trans/codegen_c.cpp b/src/trans/codegen_c.cpp index 5ea03eca..7a46306d 100644 --- a/src/trans/codegen_c.cpp +++ b/src/trans/codegen_c.cpp @@ -195,7 +195,8 @@ namespace { // TODO: use a formatter specific to shell escaping cmd_ss << "\"" << FmtEscaped(arg) << "\" "; } - DEBUG("- " << cmd_ss.str()); + //DEBUG("- " << cmd_ss.str()); + ::std::cout << "Running comamnd - " << cmd_ss.str() << ::std::endl; if( system(cmd_ss.str().c_str()) ) { abort(); @@ -2194,18 +2195,23 @@ namespace { switch( ty.m_data.as_Primitive() ) { case ::HIR::CoreType::U8: + case ::HIR::CoreType::I8: emit_lvalue(e.ret_val); m_of << " = "; emit_param(e.args.at(0)); break; case ::HIR::CoreType::U16: + case ::HIR::CoreType::I16: emit_lvalue(e.ret_val); m_of << " = __builtin_bswap16("; emit_param(e.args.at(0)); m_of << ")"; break; case ::HIR::CoreType::U32: + case ::HIR::CoreType::I32: emit_lvalue(e.ret_val); m_of << " = __builtin_bswap32("; emit_param(e.args.at(0)); m_of << ")"; break; case ::HIR::CoreType::U64: + case ::HIR::CoreType::I64: emit_lvalue(e.ret_val); m_of << " = __builtin_bswap64("; emit_param(e.args.at(0)); m_of << ")"; break; case ::HIR::CoreType::U128: + case ::HIR::CoreType::I128: emit_lvalue(e.ret_val); m_of << " = __builtin_bswap128("; emit_param(e.args.at(0)); m_of << ")"; break; default: |