From 7ef551fddefbc453b3b46c11feb76ce9bf95798d Mon Sep 17 00:00:00 2001 From: "e.gavrin" Date: Tue, 8 Jul 2014 15:43:26 +0400 Subject: [PATCH] preparation for MCU porting --- Makefile | 36 +++++++++++++----------------- src/libcoreint/interpreter.h | 3 +++ src/libcoreint/opcode-structures.h | 12 +++++----- 3 files changed, 23 insertions(+), 28 deletions(-) diff --git a/Makefile b/Makefile index 49c55635d..e3eda3f25 100644 --- a/Makefile +++ b/Makefile @@ -13,7 +13,7 @@ # limitations under the License. TARGET ?= jerry -CROSS_COMPILE ?= arm-none-eabi- +CROSS_COMPILE ?= OBJ_DIR = obj OUT_DIR = ./out @@ -58,18 +58,12 @@ OBJS = \ $(sort \ $(patsubst %.c,./$(OBJ_DIR)/%.o,$(notdir $(MAIN_MODULE_SRC) $(SOURCES)))) -CC = gcc#-4.9 -LD = ld -OBJDUMP = objdump -OBJCOPY = objcopy -SIZE = size -STRIP = strip - -CROSS_CC = $(CROSS_COMPILE)gcc#-4.9 -CROSS_LD = $(CROSS_COMPILE)ld -CROSS_OBJDUMP = $(CROSS_COMPILE)objdump -CROSS_OBJCOPY = $(CROSS_COMPILE)objcopy -CROSS_SIZE = $(CROSS_COMPILE)size +CC = $(CROSS_COMPILE)gcc +LD = $(CROSS_COMPILE)ld +OBJDUMP = $(CROSS_COMPILE)objdump +OBJCOPY = $(CROSS_COMPILE)objcopy +SIZE = $(CROSS_COMPILE)size +STRIP = $(CROSS_COMPILE)strip # General flags CFLAGS ?= $(INCLUDES) -std=c99 #-fdiagnostics-color=always @@ -79,33 +73,33 @@ CFLAGS ?= $(INCLUDES) -std=c99 #-fdiagnostics-color=always #CFLAGS += -Wstrict-prototypes -Wmissing-prototypes # Flags for MCU -#CFLAGS += -mlittle-endian -mcpu=cortex-m4 -march=armv7e-m -mthumb -#CFLAGS += -mfpu=fpv4-sp-d16 -mfloat-abi=hard -#CFLAGS += -ffunction-sections -fdata-sections +MCU_CFLAGS += -mlittle-endian -mcpu=cortex-m4 -march=armv7e-m -mthumb +MCU_CFLAGS += -mfpu=fpv4-sp-d16 -mfloat-abi=hard +MCU_CFLAGS += -ffunction-sections -fdata-sections -DEBUG_OPTIONS = -g3 -O0 -DDEBUG# -fsanitize=address +DEBUG_OPTIONS = -g3 -O0 -DDEBUG #-fsanitize=address RELEASE_OPTIONS = -Os -Werror -DNDEBUG DEFINES = -DMEM_HEAP_CHUNK_SIZE=256 -DMEM_HEAP_AREA_SIZE=32768 TARGET_HOST = -D__HOST TARGET_MCU = -D__MCU -.PHONY: all debug release clean tests check install +.PHONY: all debug debug.stm32f3 release clean tests check install all: clean debug release check -debug: +debug: clean mkdir -p $(OUT_DIR)/debug.host/ $(CC) $(CFLAGS) $(DEBUG_OPTIONS) $(DEFINES) $(TARGET_HOST) \ $(SOURCES) $(MAIN_MODULE_SRC) -o $(OUT_DIR)/debug.host/$(TARGET) -release: +release: clean mkdir -p $(OUT_DIR)/release.host/ $(CC) $(CFLAGS) $(RELEASE_OPTIONS) $(DEFINES) $(TARGET_HOST) \ $(SOURCES) $(MAIN_MODULE_SRC) -o $(OUT_DIR)/release.host/$(TARGET) $(STRIP) $(OUT_DIR)/release.host/$(TARGET) -tests: +tests: clean mkdir -p $(OUT_DIR)/tests.host/ for unit_test in $(UNITTESTS); \ do \ diff --git a/src/libcoreint/interpreter.h b/src/libcoreint/interpreter.h index f01bf69cc..7b3351f8b 100644 --- a/src/libcoreint/interpreter.h +++ b/src/libcoreint/interpreter.h @@ -23,6 +23,7 @@ #endif #include "opcodes.h" +#include "ecma-globals.h" OPCODE __program[128]; @@ -31,6 +32,8 @@ opfunc __opfuncs[LAST_OP]; struct __int_data { int pos; + ecma_Object_t *pThisBinding; /**< this binding for current context */ + ecma_Object_t *pLexEnv; /**< current lexical environment */ int *root_op_addr; }; diff --git a/src/libcoreint/opcode-structures.h b/src/libcoreint/opcode-structures.h index 4d42f6286..6332dce69 100644 --- a/src/libcoreint/opcode-structures.h +++ b/src/libcoreint/opcode-structures.h @@ -390,13 +390,11 @@ OP_CODE_DECL (loop_postcond, T_IDX_IDX, //// TODO -// Variable declarations +// Variable declaration +OP_CODE_DECL (decl_var, T_IDX, + variable) + // TODO New constructor - - - - -#endif /* OPCODE_STRUCTURES_H */ - +#endif /* OPCODE_STRUCTURES_H */ \ No newline at end of file