URL
https://opencores.org/ocsvn/or1k/or1k/trunk
Subversion Repositories or1k
Compare Revisions
- This comparison shows the changes necessary to convert path
/or1k/branches/branch_qmem/orp
- from Rev 1173 to Rev 1765
- ↔ Reverse comparison
Rev 1173 → Rev 1765
/orp_soc/sw/icm/icm.S
0,0 → 1,122
/* Basic instruction set test */ |
#include "../support/spr_defs.h" |
|
.global _main |
.global _buserr_except |
.global _dpf_except |
.global _ipf_except |
.global _lpint_except |
.global _align_except |
.global _illegal_except |
.global _hpint_except |
.global _dtlbmiss_except |
.global _itlbmiss_except |
.global _range_except |
.global _syscall_except |
.global _res1_except |
.global _trap_except |
.global _res2_except |
.global _icm_test |
|
.section .text |
|
_buserr_except: |
_dpf_except: |
_ipf_except: |
_lpint_except: |
_align_except: |
_illegal_except: |
_hpint_except: |
_dtlbmiss_except: |
_itlbmiss_except: |
_range_except: |
_syscall_except: |
_res1_except: |
_trap_except: |
_res2_except: |
|
_main: |
l.nop |
l.addi r6,r0,0 |
|
/* Store array */ |
/* r4 pointer */ |
/* r5 loop counter */ |
l.movhi r4,hi(_icm_var) |
l.ori r4,r4,lo(_icm_var) |
l.addi r5,r0,6 |
loop1: l.sw 0(r4),r4 |
l.addi r4,r4,4 |
l.sfeq r5,r0 |
l.bnf loop1 |
l.addi r5,r5,-1 |
|
/* Check array */ |
/* r4 pointer */ |
/* r5 loop counter */ |
/* r6 chksum */ |
/* r7 tmp loaded value */ |
l.movhi r4,hi(_icm_var) |
l.ori r4,r4,lo(_icm_var) |
l.addi r5,r0,6 |
loop2: l.lwz r7,0(r4) |
l.addi r4,r4,4 |
l.add r6,r6,r7 |
l.sfeq r5,r0 |
l.bnf loop2 |
l.addi r5,r5,-1 |
|
/* Run from ICM */ |
l.jal _icm_test |
l.addi r6,r6,50 |
|
l.add r3,r0,r6 |
l.jal _report |
|
l.nop |
l.jal _exit |
l.nop |
l.nop |
|
.section .icm,"ax" |
|
_icm_var: |
.space 100 |
|
_icm_test: |
l.addi r6,r6,1 |
l.addi r6,r6,5 |
|
/* Store array */ |
/* r4 pointer */ |
/* r5 loop counter */ |
l.movhi r4,hi(_icm_var) |
l.ori r4,r4,lo(_icm_var) |
l.addi r5,r0,6 |
loop3: l.sw 0(r4),r4 |
l.addi r4,r4,4 |
l.sfeq r5,r0 |
l.bnf loop3 |
l.addi r5,r5,-1 |
|
/* Check array */ |
/* r4 pointer */ |
/* r5 loop counter */ |
/* r6 chksum */ |
/* r7 tmp loaded value */ |
l.movhi r4,hi(_icm_var) |
l.ori r4,r4,lo(_icm_var) |
l.addi r5,r0,6 |
loop4: |
/* l.lwz r7,0(r4)*/ |
l.add r7,r0,r0 |
l.addi r4,r4,4 |
l.add r6,r6,r7 |
l.sfeq r5,r0 |
l.bnf loop4 |
l.addi r5,r5,-1 |
|
l.nop |
l.jr r9 |
l.addi r6,r6,20 |
|
orp_soc/sw/icm/icm.S
Property changes :
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Index: orp_soc/sw/icm/Makefile
===================================================================
--- orp_soc/sw/icm/Makefile (nonexistent)
+++ orp_soc/sw/icm/Makefile (revision 1765)
@@ -0,0 +1,33 @@
+
+all: icm-nocache icm-icdc icm-ic icm-dc
+
+
+icm-nocache: icm.o ../support/reset-nocache.o
+ or32-uclinux-ld -T ../support/orp.ld $? -o $@.or32 ../support/libsupport.a
+ or32-uclinux-objcopy -O binary $@.or32 $@.bin
+ ../utils/bin2hex $@.bin > $@.hex
+ cp $@.hex ../../sim/src/
+
+icm-icdc: icm.o ../support/reset-icdc.o
+ or32-uclinux-ld -T ../support/orp.ld $? -o $@.or32 ../support/libsupport.a
+ or32-uclinux-objcopy -O binary $@.or32 $@.bin
+ ../utils/bin2hex $@.bin > $@.hex
+ cp $@.hex ../../sim/src/
+
+icm-ic: icm.o ../support/reset-ic.o
+ or32-uclinux-ld -T ../support/orp.ld $? -o $@.or32 ../support/libsupport.a
+ or32-uclinux-objcopy -O binary $@.or32 $@.bin
+ ../utils/bin2hex $@.bin > $@.hex
+ cp $@.hex ../../sim/src/
+
+icm-dc: icm.o ../support/reset-dc.o
+ or32-uclinux-ld -T ../support/orp.ld $? -o $@.or32 ../support/libsupport.a
+ or32-uclinux-objcopy -O binary $@.or32 $@.bin
+ ../utils/bin2hex $@.bin > $@.hex
+ cp $@.hex ../../sim/src/
+
+icm.o: icm.S
+ or32-uclinux-gcc -O0 $? -c -o $@
+
+clean:
+ rm -f *.o *.or32 *.log *.bin *.hex