1 FPGAMMIX_DIR
=/home
/tommy
/fpgammix
2 MMIX_TOOLS_BIN
=/opt
/mmix
/bin
4 # XXX -mno-base-addresses should be the default! -mbase-addresses is
5 # completely unscalable, running out of globals within 30 uses.
7 all: readmoto.mmo hwfb.elf
#myfib-verbose.sim
9 #CFLAGS=-mno-base-addresses -O2 -fomit-frame-pointer
10 CC
=$(MMIX_TOOLS_BIN
)/mmix-gcc
11 CFLAGS
=-O
-fomit-frame-pointer
-std
=gnu99
13 #LDOPTS=-Ttext=80000000
16 %.run-fpgammix-sim
: %.txt
# $(FPGAMMIX_DIR)/rtl/Icarus/initmem.data
17 $(MAKE
) -C
$(FPGAMMIX_DIR
)/workloads
/tinymon
18 cp
$< $(FPGAMMIX_DIR
)/rtl
/Icarus
/input.txt
19 $(MAKE
) -C
$(FPGAMMIX_DIR
)/rtl
/Icarus
;
22 mmix-objcopy
-I elf64-mmix
-O mmo
$< $@
24 overflow3.elf
: overflow3.o
25 $(MMIX_TOOLS_BIN
)/mmix-ld
-Ttext
=0 -melf64mmix
$< -o
$@
26 $(MMIX_TOOLS_BIN
)/mmix-objdump
-d
$@
37 mmixal
-l
$@.lst
-o
$@
$<
40 # $(MMIX_TOOLS_BIN)/mmix-objcopy -I mmo -O elf64-mmix $< $@
43 $(CC
) $(CFLAGS
) -c
$< -o
$@
46 $(CC
) $(CFLAGS
) -c
$< -o
$@
49 $(CC
) $(CFLAGS
) -c
$< -o
$@
51 %.elf.lite
: %.o Makefile
52 $(MMIX_TOOLS_BIN
)/mmix-ld
-Ttext
=800 -melf64mmix
$< -o
$@
53 $(MMIX_TOOLS_BIN
)/mmix-objdump
-d
$@
56 $(CC
) $(CFLAGS
) -Ttext
=800 -melf
$< -o
$@
57 $(MMIX_TOOLS_BIN
)/mmix-objdump
-d
$@
59 # Sigh, SREC doesn't cover 64-bit addresses.
60 %.data.lite
: %.elf.lite
61 $(MMIX_TOOLS_BIN
)/mmix-objdump
-s
$< | grep
'^ '|cut
-d
' ' -f3-6|tr
' ' '\n' | grep
-v
'^$$' > $@
64 $(MMIX_TOOLS_BIN
)/mmix-objdump
-s
$< | grep
'^ '|cut
-d
' ' -f3-6|tr
' ' '\n' | grep
-v
'^$$' > $@
67 $(FPGAMMIX_DIR
)/tools
/data2mif.sh
$< > $@
69 %.txt.lite
: %.elf.lite
70 $(MMIX_TOOLS_BIN
)/mmix-objdump
-s
$<|cut
-d
' ' -f-6
> $@
71 $(MMIX_TOOLS_BIN
)/mmix-nm
$< |grep
'T main'|
(read x y
;echo
" $$x"G
) >> $@
73 # $(MMIX_TOOLS_BIN)/mmix-strip $<
76 $(MMIX_TOOLS_BIN
)/mmix-strip
$< -o
$<.stripped
77 $(MMIX_TOOLS_BIN
)/mmix-objdump
-s
$<.stripped|cut
-d
' ' -f-6
> $@
78 $(MMIX_TOOLS_BIN
)/mmix-nm
$< |grep
'T Main'|
(read x y
;echo
" $$x"G
) >> $@
82 $(MMIX_TOOLS_BIN
)/mmix-objdump
-d
$<
85 cp
$< $(FPGAMMIX_DIR
)/rtl
/Icarus
/input.txt
86 cd
$(FPGAMMIX_DIR
)/rtl
/Icarus
; make
89 -rm *.elf
*.elf.stripped
*.o
*.txt