Browse Source

Added float128 to the marshalling structures in the C# generator. (#857)

pull/837/merge
Kimon Topouzidis 8 years ago committed by Dimitar Dobrev
parent
commit
e8e03f7aae
  1. 20
      src/CppParser/Bindings/CLI/Target.cpp
  2. 12
      src/CppParser/Bindings/CLI/Target.h
  3. 34
      src/CppParser/Bindings/CSharp/i686-pc-win32-msvc/CppSharp.CppParser.cs
  4. 34
      src/CppParser/Bindings/CSharp/x86_64-pc-win32-msvc/CppSharp.CppParser.cs
  5. 4
      src/CppParser/Parser.cpp
  6. 4
      src/CppParser/Target.cpp
  7. 4
      src/CppParser/Target.h

20
src/CppParser/Bindings/CLI/Target.cpp

@ -430,6 +430,26 @@ void CppSharp::Parser::ParserTargetInfo::WCharWidth::set(unsigned int value)
((::CppSharp::CppParser::ParserTargetInfo*)NativePtr)->wCharWidth = value; ((::CppSharp::CppParser::ParserTargetInfo*)NativePtr)->wCharWidth = value;
} }
unsigned int CppSharp::Parser::ParserTargetInfo::Float128Align::get()
{
return ((::CppSharp::CppParser::ParserTargetInfo*)NativePtr)->float128Align;
}
void CppSharp::Parser::ParserTargetInfo::Float128Align::set(unsigned int value)
{
((::CppSharp::CppParser::ParserTargetInfo*)NativePtr)->float128Align = value;
}
unsigned int CppSharp::Parser::ParserTargetInfo::Float128Width::get()
{
return ((::CppSharp::CppParser::ParserTargetInfo*)NativePtr)->float128Width;
}
void CppSharp::Parser::ParserTargetInfo::Float128Width::set(unsigned int value)
{
((::CppSharp::CppParser::ParserTargetInfo*)NativePtr)->float128Width = value;
}
System::String^ CppSharp::Parser::ParserTargetInfo::ABI::get() System::String^ CppSharp::Parser::ParserTargetInfo::ABI::get()
{ {
auto __ret = ((::CppSharp::CppParser::ParserTargetInfo*)NativePtr)->getABI(); auto __ret = ((::CppSharp::CppParser::ParserTargetInfo*)NativePtr)->getABI();

12
src/CppParser/Bindings/CLI/Target.h

@ -284,6 +284,18 @@ namespace CppSharp
void set(unsigned int); void set(unsigned int);
} }
property unsigned int Float128Align
{
unsigned int get();
void set(unsigned int);
}
property unsigned int Float128Width
{
unsigned int get();
void set(unsigned int);
}
property System::String^ ABI property System::String^ ABI
{ {
System::String^ get(); System::String^ get();

34
src/CppParser/Bindings/CSharp/i686-pc-win32-msvc/CppSharp.CppParser.cs

@ -16805,7 +16805,7 @@ namespace CppSharp
public unsafe partial class ParserTargetInfo : IDisposable public unsafe partial class ParserTargetInfo : IDisposable
{ {
[StructLayout(LayoutKind.Explicit, Size = 176)] [StructLayout(LayoutKind.Explicit, Size = 184)]
public partial struct __Internal public partial struct __Internal
{ {
[FieldOffset(0)] [FieldOffset(0)]
@ -16925,6 +16925,12 @@ namespace CppSharp
[FieldOffset(172)] [FieldOffset(172)]
internal uint wCharWidth; internal uint wCharWidth;
[FieldOffset(176)]
internal uint float128Align;
[FieldOffset(180)]
internal uint float128Width;
[SuppressUnmanagedCodeSecurity] [SuppressUnmanagedCodeSecurity]
[DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.ThisCall, [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.ThisCall,
EntryPoint="??0ParserTargetInfo@CppParser@CppSharp@@QAE@XZ")] EntryPoint="??0ParserTargetInfo@CppParser@CppSharp@@QAE@XZ")]
@ -17521,6 +17527,32 @@ namespace CppSharp
} }
} }
public uint Float128Align
{
get
{
return ((global::CppSharp.Parser.ParserTargetInfo.__Internal*) __Instance)->float128Align;
}
set
{
((global::CppSharp.Parser.ParserTargetInfo.__Internal*) __Instance)->float128Align = value;
}
}
public uint Float128Width
{
get
{
return ((global::CppSharp.Parser.ParserTargetInfo.__Internal*) __Instance)->float128Width;
}
set
{
((global::CppSharp.Parser.ParserTargetInfo.__Internal*) __Instance)->float128Width = value;
}
}
public string ABI public string ABI
{ {
get get

34
src/CppParser/Bindings/CSharp/x86_64-pc-win32-msvc/CppSharp.CppParser.cs

@ -16805,7 +16805,7 @@ namespace CppSharp
public unsafe partial class ParserTargetInfo : IDisposable public unsafe partial class ParserTargetInfo : IDisposable
{ {
[StructLayout(LayoutKind.Explicit, Size = 184)] [StructLayout(LayoutKind.Explicit, Size = 192)]
public partial struct __Internal public partial struct __Internal
{ {
[FieldOffset(0)] [FieldOffset(0)]
@ -16925,6 +16925,12 @@ namespace CppSharp
[FieldOffset(180)] [FieldOffset(180)]
internal uint wCharWidth; internal uint wCharWidth;
[FieldOffset(184)]
internal uint float128Align;
[FieldOffset(188)]
internal uint float128Width;
[SuppressUnmanagedCodeSecurity] [SuppressUnmanagedCodeSecurity]
[DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl, [DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl,
EntryPoint="??0ParserTargetInfo@CppParser@CppSharp@@QEAA@XZ")] EntryPoint="??0ParserTargetInfo@CppParser@CppSharp@@QEAA@XZ")]
@ -17521,6 +17527,32 @@ namespace CppSharp
} }
} }
public uint Float128Align
{
get
{
return ((global::CppSharp.Parser.ParserTargetInfo.__Internal*) __Instance)->float128Align;
}
set
{
((global::CppSharp.Parser.ParserTargetInfo.__Internal*) __Instance)->float128Align = value;
}
}
public uint Float128Width
{
get
{
return ((global::CppSharp.Parser.ParserTargetInfo.__Internal*) __Instance)->float128Width;
}
set
{
((global::CppSharp.Parser.ParserTargetInfo.__Internal*) __Instance)->float128Width = value;
}
}
public string ABI public string ABI
{ {
get get

4
src/CppParser/Parser.cpp

@ -1919,7 +1919,7 @@ static PrimitiveType WalkBuiltinType(const clang::BuiltinType* Builtin)
case clang::BuiltinType::Float: return PrimitiveType::Float; case clang::BuiltinType::Float: return PrimitiveType::Float;
case clang::BuiltinType::Double: return PrimitiveType::Double; case clang::BuiltinType::Double: return PrimitiveType::Double;
case clang::BuiltinType::LongDouble: return PrimitiveType::LongDouble; case clang::BuiltinType::LongDouble: return PrimitiveType::LongDouble;
case clang::BuiltinType::Float128: return PrimitiveType::Half; case clang::BuiltinType::Float128: return PrimitiveType::Float128;
case clang::BuiltinType::NullPtr: return PrimitiveType::Null; case clang::BuiltinType::NullPtr: return PrimitiveType::Null;
@ -4326,6 +4326,8 @@ ParserTargetInfo* Parser::GetTargetInfo()
parserTargetInfo->pointerWidth = TI.getPointerWidth(0); parserTargetInfo->pointerWidth = TI.getPointerWidth(0);
parserTargetInfo->wCharAlign = TI.getWCharAlign(); parserTargetInfo->wCharAlign = TI.getWCharAlign();
parserTargetInfo->wCharWidth = TI.getWCharWidth(); parserTargetInfo->wCharWidth = TI.getWCharWidth();
parserTargetInfo->float128Align = TI.getFloat128Align();
parserTargetInfo->float128Width = TI.getFloat128Width();
return parserTargetInfo; return parserTargetInfo;
} }

4
src/CppParser/Target.cpp

@ -38,7 +38,9 @@ ParserTargetInfo::ParserTargetInfo() :
pointerAlign(0), pointerAlign(0),
pointerWidth(0), pointerWidth(0),
wCharAlign(0), wCharAlign(0),
wCharWidth(0) wCharWidth(0),
float128Align(0),
float128Width(0)
{ {
} }

4
src/CppParser/Target.h

@ -72,6 +72,8 @@ struct CS_API ParserTargetInfo
unsigned int pointerWidth; unsigned int pointerWidth;
unsigned int wCharAlign; unsigned int wCharAlign;
unsigned int wCharWidth; unsigned int wCharWidth;
unsigned int float128Align;
unsigned int float128Width;
}; };
} } } }

Loading…
Cancel
Save