From b3f109c2f4edf52bc4071f9f8d71d868fb117c00 Mon Sep 17 00:00:00 2001 From: Bernhard Urban Date: Fri, 14 Jan 2011 02:50:29 +0100 Subject: [PATCH] 3a_asm: FIX: parser fail bei labels aufloesen --- 3a_asm/Expr_eval.hs | 1 + 3a_asm/Main.hs | 2 +- 3a_asm/Makefile | 3 ++- 3a_asm/notes | 2 -- progs/deepjit.s | 4 ++-- 5 files changed, 6 insertions(+), 6 deletions(-) diff --git a/3a_asm/Expr_eval.hs b/3a_asm/Expr_eval.hs index 4924950..71e0f4d 100644 --- a/3a_asm/Expr_eval.hs +++ b/3a_asm/Expr_eval.hs @@ -10,6 +10,7 @@ import qualified Text.ParserCombinators.Parsec.Token as P import Text.ParserCombinators.Parsec.Language import System.IO import Data.Word +import Data.List import Data.Bits lexer :: P.TokenParser () diff --git a/3a_asm/Main.hs b/3a_asm/Main.hs index c0de4f4..40be8f0 100644 --- a/3a_asm/Main.hs +++ b/3a_asm/Main.hs @@ -37,7 +37,7 @@ main = do else do printf "" let base = if "-b" `elem` args then 2 else 16 - let parsed = parseInstr dict formatedsrc + let parsed = parseInstr (reverse $ sort dict) formatedsrc sequence_ [printf "%s" (showsDTFBase x base "") | x <- parsed] diff --git a/3a_asm/Makefile b/3a_asm/Makefile index 89ef646..2f1c87e 100644 --- a/3a_asm/Makefile +++ b/3a_asm/Makefile @@ -1,7 +1,8 @@ SHELL := zsh all: - @ghc --make Main.hs -o dtas + @ghc --make Main.hs -O0 -o dtas + @strip dtas .PHONY: clean test clean: diff --git a/3a_asm/notes b/3a_asm/notes index 07dfe0e..26ff1ef 100644 --- a/3a_asm/notes +++ b/3a_asm/notes @@ -1,6 +1,4 @@ BUGS: -- parsers2/eval: aufloesen von zwei labels x und y funktioniert nicht, wenn x ein - echter prefix von y ist (longest input match anyone?) - parsers2: bei instr branches addresse durch 4 rechnen (ldi vorm brr -> RAGE) WUENSCHE: diff --git a/progs/deepjit.s b/progs/deepjit.s index c0352d8..1436b63 100644 --- a/progs/deepjit.s +++ b/progs/deepjit.s @@ -185,10 +185,10 @@ u_test: ldi r10, UART_BASE@lo ldih r10, UART_BASE@hi -u_send_by1: +u_send_byte1: ldw r9, UART_STATUS(r10) andx r9, UART_TRANS_EMPTY - brnz+ u_send_by1 ; branch if not zero + brnz+ u_send_byte1 ; branch if not zero ldis r0, 0x50 stb r0, UART_TRANS(r10) -- 2.25.1