[svn r253] Removed -inlineasm option. inline asm is now enabled by default unless the new -noasm option is passed.

Tried adding a stack trace print when compiler crashes, not sure it's working though.
Changed data layouts to match that of llvm-gcc.
Fixed casting function pointers.
Added support checks in AsmStatement.
This commit is contained in:
Tomas Lindquist Olsen
2008-06-08 19:09:24 +02:00
parent c1d240582d
commit 6ededdd9e3
14 changed files with 85 additions and 46 deletions

View File

@@ -2260,7 +2260,10 @@ private
{
version( D_InlineAsm_X86 )
{
version( X86_64 )
version( LLVMDC )
{
}
else version( X86_64 )
{
}

View File

@@ -22,14 +22,14 @@ MD=mkdir -p
ADD_CFLAGS=
ADD_DFLAGS=
#CFLAGS=-O $(ADD_CFLAGS)
#CFLAGS=-O3 $(ADD_CFLAGS)
CFLAGS=-g $(ADD_CFLAGS)
#DFLAGS=-release -O -inline -w $(ADD_DFLAGS)
DFLAGS=-g -w $(ADD_DFLAGS)
#DFLAGS=-release -O3 -inline -w $(ADD_DFLAGS)
DFLAGS=-g -w -noasm $(ADD_DFLAGS)
#TFLAGS=-O -inline -w $(ADD_DFLAGS)
TFLAGS=-g -w $(ADD_DFLAGS)
#TFLAGS=-O3 -inline -w $(ADD_DFLAGS)
TFLAGS=-g -w -noasm $(ADD_DFLAGS)
DOCFLAGS=-version=DDoc

View File

@@ -473,7 +473,11 @@ unittest
extern (C) int _adCmpChar(Array a1, Array a2)
{
version (D_InlineAsm_X86)
version(D_InlineAsm_X86)
{
//version = Asm86;
}
version (Asm86)
{
asm
{ naked ;

View File

@@ -29,6 +29,9 @@ module lifetime;
//debug=PRINTF;
//debug=PRINTF2;
// we're not allowed to jump out of asm blocks
//version(D_InlineAsm_X86) version = Asm86;
private
{
import tango.stdc.stdlib;
@@ -210,7 +213,7 @@ extern (C) void* _d_newarrayT(TypeInfo ti, size_t length)
if (length == 0 || size == 0)
return null;
version (D_InlineAsm_X86)
version (Asm86)
{
asm
{
@@ -249,7 +252,7 @@ extern (C) void* _d_newarrayiT(TypeInfo ti, size_t length)
auto initializer = ti.next.init();
auto isize = initializer.length;
auto q = initializer.ptr;
version (D_InlineAsm_X86)
version (Asm86)
{
asm
{
@@ -520,7 +523,7 @@ body
if (newlength)
{
version (D_InlineAsm_X86)
version (Asm86)
{
size_t newsize = void;
@@ -619,7 +622,7 @@ body
if (newlength)
{
version (D_InlineAsm_X86)
version (Asm86)
{
size_t newsize = void;

View File

@@ -24,10 +24,10 @@ MD=mkdir -p
CFLAGS=-g $(ADD_CFLAGS)
#DFLAGS=-release -O3 -inline -w $(ADD_DFLAGS)
DFLAGS=-g -w $(ADD_DFLAGS)
DFLAGS=-g -w -noasm $(ADD_DFLAGS)
#TFLAGS=-O3 -inline -w $(ADD_DFLAGS)
TFLAGS=-g -w $(ADD_DFLAGS)
TFLAGS=-g -w -noasm $(ADD_DFLAGS)
DOCFLAGS=-version=DDoc

View File

@@ -39,6 +39,10 @@ else version (GNU)
{
// use the unoptimized version
}
else version(LLVMDC)
{
// ditto
}
else version (D_InlineAsm_X86)
{
version = Asm86;

View File

@@ -20,14 +20,14 @@ MD=mkdir -p
ADD_CFLAGS=
ADD_DFLAGS=
#CFLAGS=-O $(ADD_CFLAGS)
#CFLAGS=-O3 $(ADD_CFLAGS)
CFLAGS=-g $(ADD_CFLAGS)
#DFLAGS=-release -O -inline -w -nofloat $(ADD_DFLAGS)
DFLAGS=-g -w -nofloat $(ADD_DFLAGS)
#DFLAGS=-release -O3 -inline -w -nofloat $(ADD_DFLAGS)
DFLAGS=-g -w -nofloat -noasm $(ADD_DFLAGS)
TFLAGS=-O -inline -w -nofloat $(ADD_DFLAGS)
#TFLAGS=-g -w -nofloat $(ADD_DFLAGS)
#TFLAGS=-O3 -inline -w -nofloat $(ADD_DFLAGS)
TFLAGS=-g -w -nofloat -noasm $(ADD_DFLAGS)
DOCFLAGS=-version=DDoc

View File

@@ -20,15 +20,13 @@ MD=mkdir -p
ADD_CFLAGS=
ADD_DFLAGS=
#CFLAGS=-O $(ADD_CFLAGS)
#CFLAGS=-O3 $(ADD_CFLAGS)
CFLAGS=-g $(ADD_CFLAGS)
### warnings disabled because gcx has issues ###
#DFLAGS=-release -O -inline $(ADD_DFLAGS)
#DFLAGS=-release -O3 -inline -w $(ADD_DFLAGS)
DFLAGS=-g $(ADD_DFLAGS)
#TFLAGS=-O -inline $(ADD_DFLAGS)
#TFLAGS=-O3 -inline $(ADD_DFLAGS)
TFLAGS=-g $(ADD_DFLAGS)
DOCFLAGS=-version=DDoc