Compare commits
3 Commits
Author | SHA1 | Date | |
---|---|---|---|
|
abf969f43e | ||
|
3499f9c879 | ||
|
6b3f7c1a6a |
2
Makefile
2
Makefile
|
@ -38,7 +38,7 @@ OBJECTS = $(patsubst %,$(BUILD)/%, $(SOURCES:.c=.o))
|
|||
# commented them out for the time being
|
||||
#LDFLAGS = -Wl,--relax -Wl,--gc-sections
|
||||
LDFLAGS = -lm
|
||||
OPT := -O3 -flto -fno-fat-lto-objects
|
||||
OPT := -O3 -flto -fno-fat-lto-objects -march=native
|
||||
CFLAGS = -c -g -Wall -Wno-format $(OPT) -D LINUX
|
||||
|
||||
all: directory $(SOURCES) $(OBJECTS) Makefile
|
||||
|
|
4
debug.c
4
debug.c
|
@ -24,7 +24,7 @@ extern int32_t baudrate;
|
|||
extern int32_t eeprom;
|
||||
extern char *hubram;
|
||||
extern int32_t printbreak;
|
||||
extern PasmVarsT PasmVars[8];
|
||||
extern PasmVarsT PasmVars[16];
|
||||
extern SerialT serial_in;
|
||||
extern SerialT serial_out;
|
||||
|
||||
|
@ -247,7 +247,7 @@ int32_t RunProp(int32_t maxloops)
|
|||
while (runflag && (maxloops < 0 || loopcount < maxloops))
|
||||
{
|
||||
runflag = step_chip();
|
||||
CheckCommand();
|
||||
//CheckCommand();
|
||||
if (baudrate)
|
||||
{
|
||||
CheckSerialOut(&serial_out);
|
||||
|
|
2
gdb.c
2
gdb.c
|
@ -19,7 +19,7 @@
|
|||
extern FILE *logfile;
|
||||
extern FILE *tracefile;
|
||||
extern FILE *cmdfile;
|
||||
extern PasmVarsT PasmVars[8];
|
||||
extern PasmVarsT PasmVars[16];
|
||||
extern char *hubram;
|
||||
char cmd[1028];
|
||||
extern int32_t profile;
|
||||
|
|
|
@ -11,7 +11,7 @@ extern char *hubram;
|
|||
extern int32_t memsize;
|
||||
extern char lockstate[16];
|
||||
extern char lockalloc[16];
|
||||
extern PasmVarsT PasmVars[8];
|
||||
extern PasmVarsT PasmVars[16];
|
||||
extern int32_t pasmspin;
|
||||
extern int32_t cycleaccurate;
|
||||
extern int32_t loopcount;
|
||||
|
@ -28,12 +28,16 @@ void PrintResults(int32_t zcri, int32_t zflag, int32_t cflag, int32_t result)
|
|||
|
||||
static int32_t parity(int32_t val)
|
||||
{
|
||||
#if 0
|
||||
val ^= val >> 16;
|
||||
val ^= val >> 8;
|
||||
val ^= val >> 4;
|
||||
val ^= val >> 2;
|
||||
val ^= val >> 1;
|
||||
return val & 1;
|
||||
#else
|
||||
return __builtin_parity(val);
|
||||
#endif
|
||||
}
|
||||
|
||||
static int32_t abs(int32_t val)
|
||||
|
|
14
pasmsim2.c
14
pasmsim2.c
|
@ -56,12 +56,12 @@ static int wrl_flags1 = 0;
|
|||
static int rdl_flags0 = 0;
|
||||
static int rdl_flags1 = 0;
|
||||
|
||||
char *GetOpname2(unsigned int, int *, int *, int *);
|
||||
char *GetOpname2(unsigned int, int *, int *, int *, int);
|
||||
|
||||
static void NotImplemented(int instruction)
|
||||
{
|
||||
int dummy;
|
||||
char *opname = GetOpname2(instruction, &dummy, &dummy, &dummy);
|
||||
char *opname = GetOpname2(instruction, &dummy, &dummy, &dummy,0);
|
||||
printf("%s%s not implemented - %8.8x%s", NEW_LINE, opname, instruction, NEW_LINE);
|
||||
spinsim_exit(1);
|
||||
}
|
||||
|
@ -2641,13 +2641,13 @@ int32_t ExecutePasmInstruction2(PasmVarsT *pasmvars)
|
|||
if (value2 >= 0xfff80 && value2 < 0xfffc0)
|
||||
wrl_flags0 |= 1 << ((value2 >> 2) & 15);
|
||||
result = read_unaligned_long(value2);
|
||||
if ((value1 & 0xff) != 0xff)
|
||||
if (value1 & 0xff)
|
||||
result = (result & ~0xff) | (value1 & 0xff);
|
||||
if ((value1 & 0xff) != 0xff00)
|
||||
if (value1 & 0xff00)
|
||||
result = (result & ~0xff00) | (value1 & 0xff00);
|
||||
if ((value1 & 0xff) != 0xff0000)
|
||||
if (value1 & 0xff0000)
|
||||
result = (result & ~0xff0000) | (value1 & 0xff0000);
|
||||
if ((value1 & 0xff) != 0xff000000)
|
||||
if (value1 & 0xff000000)
|
||||
result = (result & ~0xff000000) | (value1 & 0xff000000);
|
||||
write_unaligned_long(value2, result);
|
||||
if (pasmvars->printflag > 1)
|
||||
|
@ -3618,7 +3618,7 @@ int32_t ExecutePasmInstruction2(PasmVarsT *pasmvars)
|
|||
|
||||
case 43: // pop
|
||||
pasmvars->retptr = (pasmvars->retptr - 1) & 7;
|
||||
pasmvars->retstack[pasmvars->retptr] = value1;
|
||||
result = pasmvars->retstack[pasmvars->retptr];
|
||||
if (pasmvars->retptr == 7)
|
||||
printf("return stack underflow%s", NEW_LINE);
|
||||
break;
|
||||
|
|
21
spininterp.c
21
spininterp.c
|
@ -14,7 +14,7 @@
|
|||
#include "spinsim.h"
|
||||
|
||||
extern int32_t printflag;
|
||||
extern PasmVarsT PasmVars[8];
|
||||
extern PasmVarsT PasmVars[16];
|
||||
extern char *hubram;
|
||||
extern int32_t memsize;
|
||||
extern int32_t loopcount;
|
||||
|
@ -37,21 +37,10 @@ int32_t MAP_ADDR(int32_t addr)
|
|||
{
|
||||
if ((addr & 0xfffffff0) == 0x12340000)
|
||||
{
|
||||
addr = memsize + (addr & 15);
|
||||
}
|
||||
else if (memsize == 65536)
|
||||
{
|
||||
addr &= 0xffff;
|
||||
}
|
||||
else if (((uint32_t)addr) >= memsize)
|
||||
{
|
||||
#if 0
|
||||
fprintf(tracefile, "MAP_ADDR(%d): address out of bounds %8.8x\n", loopcount, addr);
|
||||
addr = memsize + 12;
|
||||
#else
|
||||
addr &= memsize - 1;
|
||||
#endif
|
||||
}
|
||||
addr = memsize + (addr & 15);
|
||||
} else {
|
||||
addr &= memsize - 1;
|
||||
}
|
||||
//fprintf(tracefile, "MAP_ADDR: %8.8x %8.8x\n", addr, ((uint32_t *)hubram)[addr>>2]);
|
||||
|
||||
return addr;
|
||||
|
|
Loading…
Reference in New Issue
Block a user