From: Bernhard Urban Date: Wed, 12 Jan 2011 18:35:42 +0000 (+0100) Subject: progs: fun with deepjit (still doesn't work on real hardware :/) X-Git-Url: http://wien.tomnetworks.com/gitweb/?p=calu.git;a=commitdiff_plain;h=aa7a28ef7bdf519275eb9fac26016c9a814b772a progs: fun with deepjit (still doesn't work on real hardware :/) --- diff --git a/progs/deepjit.s b/progs/deepjit.s index 2524ae1..97008f9 100644 --- a/progs/deepjit.s +++ b/progs/deepjit.s @@ -125,10 +125,10 @@ u_recv_byte: ldw r3, UART_STATUS(r10) andx r3, UART_RECV_NEW brzs+ u_recv_byte; branch if zero - xor r0, r0, r0 + ldw r0, UART_RECV(r10) ;recv byte - ldi r0, 0x48 + ldis r0, 0x48 u_test: ldw r9, UART_STATUS(r10) andx r9, UART_TRANS_EMPTY @@ -136,22 +136,22 @@ u_test: stb r0, UART_TRANS(r10) ;set address of input - ldil r1, inputdata@lo + ldis r1, inputdata@lo ldih r1, inputdata@hi ;set address of program start - ldil r2, prog_start@lo + ldis r2, prog_start@lo ldih r2, prog_start@hi ;set address to instruction table - ldil r3, instrtable@lo + ldis r3, instrtable@lo ldih r3, instrtable@hi ;set address to defer table - ldil r9, defertable@lo + ldis r9, defertable@lo ldih r9, defertable@hi - ldil r13, PBASE@lo + ldis r13, PBASE@lo ldih r13, PBASE@hi ;set programmer address @@ -160,17 +160,6 @@ u_test: ;call jit compiler call+ jit - ldi r10, UART_BASE@lo - ldih r10, UART_BASE@hi - ldi r0, 0x46 -u_panic: - ldw r9, UART_STATUS(r10) - andx r9, UART_TRANS_EMPTY - brnz+ u_panic ; branch if not zero - stb r0, UART_TRANS(r10) - - - ;set address to stack ;ldil r3, stack@lo ;ldih r3, stack@hi @@ -184,12 +173,22 @@ u_panic: call+ prog_start ;send result -u_send_byte: + push r0 ldi r10, UART_BASE@lo ldih r10, UART_BASE@hi + +u_send_by1: + ldw r9, UART_STATUS(r10) + andx r9, UART_TRANS_EMPTY + brnz+ u_send_by1 ; branch if not zero + ldis r0, 0x50 + stb r0, UART_TRANS(r10) + +u_send_byte: ldw r9, UART_STATUS(r10) andx r9, UART_TRANS_EMPTY brnz+ u_send_byte ; branch if not zero + pop r0 stb r0, UART_TRANS(r10) ;send result @@ -658,48 +657,48 @@ prog_start: .data jumptable: ;0 -.fill 1, vm_eof -.fill 41, vm_default +.fill 1, vm_eof/4 +.fill 41, vm_default/4 ;42 -.fill 1, vm_mul +.fill 1, vm_mul/4 ;43 -.fill 1, vm_add +.fill 1, vm_add/4 ;44 -.fill 1, vm_default +.fill 1, vm_default/4 ;45 -.fill 1, vm_sub +.fill 1, vm_sub/4 ;46-47 -.fill 2, vm_default +.fill 2, vm_default/4 ;48-57 -.fill 10, vm_consts +.fill 10, vm_consts/4 ;58-59 -.fill 2, vm_default +.fill 2, vm_default/4 ;60 -.fill 1, vm_lessthan +.fill 1, vm_lessthan/4 ;61-67 -.fill 7, vm_default +.fill 7, vm_default/4 ;68 -.fill 1, vm_dup +.fill 1, vm_dup/4 ;69-72 -.fill 4, vm_default +.fill 4, vm_default/4 ;73 -.fill 1, vm_imm +.fill 1, vm_imm/4 ;74 -.fill 1, vm_jmp +.fill 1, vm_jmp/4 ;75-79 -.fill 5, vm_default +.fill 5, vm_default/4 ;80 -.fill 1, vm_pop +.fill 1, vm_pop/4 ;81-87 -.fill 7, vm_default +.fill 7, vm_default/4 ;88 -.fill 1, vm_xch +.fill 1, vm_xch/4 ;89-125 -.fill 37, vm_default +.fill 37, vm_default/4 ;126 -.fill 1, vm_not +.fill 1, vm_not/4 ;127-255 -.fill 129, vm_default +.fill 129, vm_default/4 ;we assume not more than 3 entries defertable: diff --git a/progs/testbench.s b/progs/testbench.s new file mode 100644 index 0000000..624e3c9 --- /dev/null +++ b/progs/testbench.s @@ -0,0 +1,42 @@ +#include "dt_inc.s" + +.data +.org 0x0 +list: + .fill 0x1 ;1. element = 1 ;0x10 + .fill 0x1 ;2. element = 1 ;0x14 + .fill 0x10, 0x0 ;nullen.. +str: + .ascii "hier das ergebnis: " +.text +.org 0x0 +start: + br+ main + br+ main + ret +main: + call+ u_init + call+ u_recv_byte + call u_send_newline + + ldis r1, 0x42 + call u_send_byte + + ldis r0, bla/4 + ; addi r1, r0, 0 + ; call u_send_byte + brr r0 + + ldis r1, 0x43 + call u_send_byte + +hang: + br hang + + +.org 0x50 +bla: + call u_init + ldis r1, 0x41 + call u_send_byte + br hang