Permalink
Browse files

Adds image building rules

  • Loading branch information...
0x7CFE committed Apr 21, 2013
1 parent 60aa2ff commit 84de88a695826c79c87c1fe73289b019d217e4c7
Showing with 30 additions and 2 deletions.
  1. +3 −0 .hgignore
  2. +12 −1 CMakeLists.txt
  3. +14 −0 doc/phi.txt
  4. BIN image/imageBuilder
  5. +1 −1 image/imageSource.st
  6. BIN image/testImage
View
@@ -7,3 +7,6 @@ CMakeCache.txt
llst
*.kdev4
*~
^deploy/
^llvm/
View
@@ -1,6 +1,6 @@
cmake_minimum_required(VERSION 2.8)
project(llst)
project(llst_project)
if(LLVM_VERSION)
set (CONFIG_COMMAND "llvm-config-${LLVM_VERSION}")
@@ -35,3 +35,14 @@ add_executable(llst ${CPP_FILES})
target_link_libraries(llst ${LLVM_LIBS} -ldl -lpthread -lreadline)
set_target_properties(llst PROPERTIES COMPILE_FLAGS "${COMPILER_FLAGS}")
set_target_properties(llst PROPERTIES LINK_FLAGS "${LINKER_FLAGS}")
set (IMAGE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/image)
add_custom_command(
OUTPUT ${IMAGE_DIR}/LittleSmalltalk.image
COMMAND ${IMAGE_DIR}/imageBuilder
DEPENDS llst ${IMAGE_DIR}/imageSource.st
WORKING_DIRECTORY ${IMAGE_DIR}
COMMENT "Building image"
)
add_custom_target(image ALL DEPENDS ${IMAGE_DIR}/LittleSmalltalk.image)
View
@@ -0,0 +1,14 @@
Бранчи и φ функции
- Проходим по инструкциям, собираем инструкции перехода, запоминаем адреса назначения
- push value делается всегда в стек текущего BB
- pop value делается так:
• Если в стеке текущего BB есть значения — достается оттуда
• Если нет, то в начало BB добавляется φ для каждого из рефереров,
результат функции возвращается как попнутое значение
• Если в стеке одного из рефереров не хватает значения, то либо это ошибка
либо код реферера находится ниже по коду метода. Надо запомнить это место
и впоследствии добавить к фи функции еще один кейс для значения на вершине стека
перед бранчем на блок с φ функцией.
View
BIN -35 Bytes (100%) image/imageBuilder
Binary file not shown.
View
@@ -1330,7 +1330,7 @@ main | command x|
]."
" main execution loop "
[ command <- String readline: '->'. command notNil ]
whileTrue: [ command isEmpty
ifFalse: [ command doIt printNl ] ]
View
BIN -173 KB image/testImage
Binary file not shown.

0 comments on commit 84de88a

Please sign in to comment.