Merge git://factorcode.org/git/erg

db4
Doug Coleman 2008-02-04 13:34:38 -06:00
commit fcbf7b4c4c
10 changed files with 38 additions and 12 deletions

View File

@ -65,6 +65,7 @@ default:
@echo "solaris-x86-64"
@echo "windows-ce-arm"
@echo "windows-nt-x86-32"
@echo "windows-nt-x86-64"
@echo ""
@echo "Additional modifiers:"
@echo ""
@ -125,6 +126,9 @@ solaris-x86-64:
windows-nt-x86-32:
$(MAKE) $(EXECUTABLE) CONFIG=vm/Config.windows.nt.x86.32
windows-nt-x86-64:
$(MAKE) $(EXECUTABLE) CONFIG=vm/Config.windows.nt.x86.64
windows-ce-arm:
$(MAKE) $(EXECUTABLE) CONFIG=vm/Config.windows.ce.arm
@ -151,7 +155,7 @@ clean:
rm -f factor*.dll libfactor*.*
vm/resources.o:
windres vm/factor.rs vm/resources.o
$(WINDRES) vm/factor.rs vm/resources.o
.c.o:
$(CC) -c $(CFLAGS) -o $@ $<

View File

@ -6,7 +6,7 @@ IN: ogg.theora
<<
"theora" {
{ [ win32? ] [ "libtheora.dll" ] }
{ [ win32? ] [ "theora.dll" ] }
{ [ macosx? ] [ "libtheora.0.dylib" ] }
{ [ unix? ] [ "libtheora.so" ] }
} cond "cdecl" add-library

View File

@ -1,7 +1,7 @@
! Copyright (C) 2007 Chris Double.
! See http://factorcode.org/license.txt for BSD license.
!
USING: kernel system combinators alien alien.syntax ;
USING: kernel system combinators alien alien.syntax ogg ;
IN: ogg.vorbis
<<

View File

@ -233,6 +233,16 @@ maybe_download_dlls() {
check_ret wget
wget http://factorcode.org/dlls/zlib1.dll
check_ret wget
wget http://factorcode.org/dlls/OpenAL32.dll
check_ret wget
wget http://factorcode.org/dlls/alut.dll
check_ret wget
wget http://factorcode.org/dlls/ogg.dll
check_ret wget
wget http://factorcode.org/dlls/theora.dll
check_ret wget
wget http://factorcode.org/dlls/vorbis.dll
check_ret wget
chmod 777 *.dll
check_ret chmod
fi

View File

@ -1,3 +1,4 @@
WINDRES=windres
include vm/Config.windows.nt
include vm/Config.x86.32
#error "lolllll"

View File

@ -1,4 +1,6 @@
CC=/k/target/bin/x86_64-pc-mingw32-gcc
#WIN64_PATH=/k/MinGW/win64/bin
WIN64_PATH=/cygdrive/k/MinGW/win64/bin/x86_64-pc-mingw32
CC=$(WIN64_PATH)-gcc.exe
WINDRES=$(WIN64_PATH)-windres.exe
include vm/Config.windows.nt
include vm/Config.x86.64
WINDRES = /k/target/bin/windres

2
vm/os-windows-nt.32.h Normal file
View File

@ -0,0 +1,2 @@
#define ESP Esp
#define EIP Eip

2
vm/os-windows-nt.64.h Normal file
View File

@ -0,0 +1,2 @@
#define ESP Rsp
#define EIP Rip

View File

@ -57,26 +57,26 @@ long exception_handler(PEXCEPTION_POINTERS pe)
PEXCEPTION_RECORD e = (PEXCEPTION_RECORD)pe->ExceptionRecord;
CONTEXT *c = (CONTEXT*)pe->ContextRecord;
if(in_code_heap_p(c->Eip))
signal_callstack_top = (void *)c->Esp;
if(in_code_heap_p(c->EIP))
signal_callstack_top = (void *)c->ESP;
else
signal_callstack_top = NULL;
if(e->ExceptionCode == EXCEPTION_ACCESS_VIOLATION)
{
signal_fault_addr = e->ExceptionInformation[1];
c->Eip = (CELL)memory_signal_handler_impl;
c->EIP = (CELL)memory_signal_handler_impl;
}
else if(e->ExceptionCode == EXCEPTION_FLT_DIVIDE_BY_ZERO
|| e->ExceptionCode == EXCEPTION_INT_DIVIDE_BY_ZERO)
{
signal_number = ERROR_DIVIDE_BY_ZERO;
c->Eip = (CELL)divide_by_zero_signal_handler_impl;
c->EIP = (CELL)divide_by_zero_signal_handler_impl;
}
else
{
signal_number = 11;
c->Eip = (CELL)misc_signal_handler_impl;
c->EIP = (CELL)misc_signal_handler_impl;
}
return EXCEPTION_CONTINUE_EXECUTION;

View File

@ -1,11 +1,11 @@
#if defined(__arm__)
#define FACTOR_ARM
#elif defined(__amd64__) || defined(__x86_64__)
#define FACTOR_AMD64
#elif defined(i386) || defined(__i386) || defined(__i386__) || defined(WIN32)
#define FACTOR_X86
#elif defined(__POWERPC__) || defined(__ppc__) || defined(_ARCH_PPC)
#define FACTOR_PPC
#elif defined(__amd64__) || defined(__x86_64__)
#define FACTOR_AMD64
#else
#error "Unsupported architecture"
#endif
@ -18,6 +18,11 @@
#endif
#include "os-windows.h"
#if defined(FACTOR_AMD64)
#include "os-windows-nt.64.h"
#elif defined(FACTOR_X86)
#include "os-windows-nt.32.h"
#endif
#else
#include "os-unix.h"