Fixed error

This commit is contained in:
fares 2019-11-18 13:45:49 -05:00
parent c09a15069b
commit dcf9cd3c80
20 changed files with 338075 additions and 197126 deletions

View file

@ -134,7 +134,16 @@ unsigned *C = NULL;
int main (int argc, char **argv) {
vx_tmc(1);
printf("\n\n******** START Native Vecadd running ********\n\n");
printf("\n\n******** Fixing fileio START Native Vecadd running ********\n\n");
FILE *fp;
char buff[255];
fp = fopen("reading_data.txt", "r");
fscanf(fp, "%s", buff);
printf("1 : %s\n", buff );
exit(0);
// Allocate memories for input arrays and output arrays.
A = (unsigned*)malloc(sizeof(unsigned)*SIZE);

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

View file

@ -1,26 +1,29 @@
COMP = /opt/riscv/bin/riscv32-unknown-elf-gcc
COMP = riscv32-unknown-elf-gcc
CC_FLAGS = -march=rv32im -mabi=ilp32 -O0 -Wl,-Bstatic,-T,linker.ld -ffreestanding -nostdlib
DMP = /opt/riscv/bin/riscv32-unknown-elf-objdump
CPY = /opt/riscv/bin/riscv32-unknown-elf-objcopy
DMP = riscv32-unknown-elf-objdump
CPY = riscv32-unknown-elf-objcopy
NEWLIB = ../../newlib/newlib.c
VX_STR = ../../startup/vx_start.s
VX_INT = ../../intrinsics/vx_intrinsics.s
VX_IO = ../../io/vx_io.s ../../io/vx_io.c
VX_API = ../../vx_api/vx_api.c
VX_TEST = ../../tests/tests.c
VX_FIO = ../../fileio/fileio.s
LIBS = ~/dev/riscv-gnu-toolchain/drops/riscv32-unknown-elf/lib/libc.a ~/dev/riscv-gnu-toolchain/drops/riscv32-unknown-elf/lib/libstdc++.a -static-libgcc -lgcc
VX_MAIN = ./vx_simple_main.c
VX_MAIN = vx_simple_main
all: HEX DUMP ELF
DUMP: ELF
$(DMP) -D vx_simple_main.elf > vx_simple_main.dump
$(DMP) -D $(VX_MAIN).elf > $(VX_MAIN).dump
HEX: ELF
$(CPY) -O ihex vx_simple_main.elf vx_simple_main.hex
$(CPY) -O ihex $(VX_MAIN).elf $(VX_MAIN).hex
ELF:
$(COMP) $(CC_FLAGS) $(VX_STR) $(VX_INT) $(VX_IO) $(VX_API) $(VX_TEST) $(VX_MAIN) -o vx_simple_main.elf
$(COMP) $(CC_FLAGS) $(VX_STR) $(VX_FIO) $(NEWLIB) $(VX_INT) $(VX_IO) $(VX_API) $(VX_TEST) $(VX_MAIN).c $(LIBS) -Iinclude -o $(VX_MAIN).elf

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

View file

@ -4,6 +4,4 @@
.type vx_vec_test, @function
.global vx_vec_test
vx_vec_test:
vsetvli t0, x0, e32
vadd.vv v0, v0, v0
ret

View file

@ -1,8 +1,10 @@
#include "../../intrinsics/vx_intrinsics.h"
#include "vx_vec.h"
int main()
{
vx_tmc(1);
vx_vec_test();
vx_tmc(0);
}

File diff suppressed because it is too large Load diff

View file

@ -1,225 +1,224 @@
:0200000480007A
:100000009705000093854507130540006B10B50068
:10001000EF004006130510006B00050017250000D7
:10002000130545DA17260000130606DA3306A64044
:1000300093050000EF00006C170500001305055C38
:10004000EF004057EF004061130540006B000500D2
:08005000EF0000536F00405760
:100020001305C5D917260000130686D93306A64046
:1000300093050000EF00806B170500001305855B3A
:10004000EF00C056EF00C060130540006B000500D4
:08005000EF0080526F00C05662
:10005800B70700009387070063880700370500800B
:100068001305855F6F00805467800000130540000A
:100078006B000500972100009381C110F326100240
:100068001305055F6F00005467800000130540000A
:100078006B0005009721000093814110F3261002C0
:100088009396A601732600029315A6001316260060
:1000980037F1FF6F3301B1403301D1403301C10063
:1000A800F326100263860600130500006B000500A6
:1000B80067800000D7728000570000026780000048
:1000C800130101FD2326810213040103232EA4FC3E
:1000D800232CB4FC232AC4FC8327C4FD83A7070070
:1000E8002326F4FE832744FD2322F4FE832744FEBF
:1000F80003C707008327C4FE2380E7008327C4FEC5
:1001080093871700032744FE034717002380E7005F
:100118008327C4FE93872700032744FE034727004D
:100128002380E7008327C4FE93873700032744FE14
:10013800034737002380E7008327C4FE93874700DF
:100148002326F4FE232404FE6F004003832784FE45
:10015800032784FDB307F70003C707008327C4FEFE
:100168002380E7008327C4FE938717002326F4FE25
:10017800832784FE938717002324F4FE032784FE35
:10018800832744FDE344F7FC8327C4FD0327C4FE0B
:1001980023A0E700130000000324C1021301010398
:1001A80067800000130101FD232681021304010367
:1001B800232EA4FC232CB4FC8327C4FD83A70700AB
:1001C8002326F4FE832744FE2320F4FE8327C4FE5F
:1001D80003C70700832704FE2380E700832704FE64
:1001E800938717000327C4FE034717002380E700FF
:1001F800832704FE938727000327C4FE03472700AD
:100208002380E700832704FE938737000327C4FE73
:10021800034737002380E7008327C4FE93874700FE
:100228002326F4FE232404FE6F004003832784FE64
:10023800032784FDB307F7000327C4FE034707001D
:100248002380E7008327C4FE938717002326F4FE44
:10025800832784FE938717002324F4FE032784FE54
:10026800832744FEE344F7FC8327C4FD0327C4FE29
:1002780023A0E700130000000324C10213010103B7
:1002880067800000130101FF232681001304010188
:10029800130000000324C10013010101678000005E
:1002A800130101FE232E8100130401022326A4FE5C
:1002B8002324B4FE832784FE3727000023A2E70007
:1002C80093070000138507000324C10113010102ED
:1002D80067800000130101FE232E81001304010230
:1002E8002326A4FE93071000138507000324C101E9
:1002F8001301010267800000130101FF232681001A
:1003080013040101130000000324C10013010101BB
:1003180067800000130101FF2326810013040101F7
:10032800130000000324C1001301010167800000CD
:10033800130101FD2326810213040103232EA4FCCB
:10034800232CB4FC232AC4FCB70701002324F4FEA1
:10035800232604FE6F00C0028327C4FE032784FD02
:10036800B307F70083C7070013870700832784FEB6
:1003780023A0E7008327C4FE938717002326F4FEF3
:100388000327C4FE832744FDE348F7FC832744FD85
:10039800138507000324C1021301010367800000CD
:1003A800130101FD2326810213040103232EA4FC5B
:1003B8008327C4FD63D807008327C4FDB307F04033
:1003C800232EF4FC0327C4FDB7370000938707806A
:1003D80063D8E700B737000093870780232EF4FC23
:1003E80083A701C32326F4FE03A701C38327C4FD03
:1003F8003307F70023A8E1C28327C4FE138507004B
:100408000324C1021301010367800000130101FEE8
:10041800232E1100232C8100130401022326A4FE9D
:1004280013050000EF00400E130000008320C101F7
:10043800032481011301010267800000130101FFF9
:100448002326810013040101130000000324C100C6
:100458001301010167800000130101FF23268100B9
:1004680013040101130000000324C100130101015A
:1004780067800000130101FF232611002324810057
:1004880013040101EF00C00A930705001385070054
:100498008320C1000324810013010101678000004B
:1004A800130101FF2326810013040101130000003A
:1004B8000324C1001301010167800000130101FF3B
:1004C800232681001304010183A781C393861700A3
:1004D80023ACD1C2138507000324C1001301010115
:1004E80067800000130101FF232681001304010126
:1004F800130000000324C1001301010167800000FC
:100508006B10B500678000006B0005006780000075
:100518006B40B500678000006B2005006780000015
:100528006B300000678000007325100267800000B0
:100538007325000267800000130540006B0005006A
:10054800F32610029396F600732600029315A60070
:100558001316260037F1FF6F3301B1403301D14044
:100568003301C100F326100263860600130500005C
:100578006B00050067800000130101FF23261100AE
:10058800232481001304010113051000EFF0DFF7A5
:10059800EFF05FB213000000138507008320C1004D
:1005A8000324810013010101678000009305050001
:1005B8009306000013060000130500006F00C0201A
:1005C800130101FF93050000232481002326110055
:1005D80013040500EF00C02803A581C28327C503C3
:1005E80063840700E780070013050400EFF01FE2AB
:1005F800130101FF23248100232291003724008066
:10060800B724008093874498130444983304F44033
:100618002326110013542440630204029314240077
:100628009384C4FFB384F40083A704001304F4FF85
:100638009384C4FFE7800700E31804FE8320C10009
:100648000324810083244100130101016780000015
:10065800130101FF23248100232021013724008076
:100668003729008093070498130909983309F9403A
:1006780023261100232291001359294063000902FF
:10068800130404989304000083270400938414003F
:1006980013044400E7800700E31899FE372400801C
:1006A8003729008093070498130949983309F940BA
:1006B80013592940630009021304049893040000A5
:1006C800832704009384140013044400E780070080
:1006D800E31899FE8320C10003248100832441008C
:1006E8000329010013010101678000001303F000D2
:1006F80013070500637EC3029377F7006390070A28
:1007080063920508937606FF1376F600B386E60033
:100718002320B7002322B7002324B7002326B700DD
:1007280013070701E366D7FE63140600678000001D
:10073800B306C3409396260097020000B38656007E
:100748006780C6002307B700A306B7002306B700D3
:10075800A305B7002305B700A304B7002304B70017
:10076800A303B7002303B700A302B7002302B7000F
:10077800A301B7002301B700A300B7002300B70007
:100788006780000093F5F50F93968500B3E5D500D3
:1007980093960501B3E5D5006FF0DFF69396270031
:1007A80097020000B386560093820000E78006FA9D
:1007B80093800200938707FF3307F7403306F6005C
:1007C800E378C3F66FF0DFF303A781C283278714AA
:1007D800638C070403A747001308F001634EE8067B
:1007E8001318270063060502338307012324C3086F
:1007F80083A88718130610003316E600B3E8C8006C
:1008080023A417192324D310930620006304D502C8
:100818001307170023A2E700B387070123A4B70033
:1008280013050000678000009307C7142324F714FA
:100838006FF05FFA83A6C7181307170023A2E70013
:1008480033E6C60023A6C718B387070123A4B70059
:1008580013050000678000001305F0FF67800000A3
:10086800130101FD2324810103AC81C2232E310130
:10087800232C4101232A5101232861012326110237
:10088800232481022322910223202103232671019C
:10089800930A0500138B0500130A10009309F0FF53
:1008A80003298C1463080902832449001384F4FF84
:1008B8006342040293942400B304990063040B0474
:1008C80083A74410638067051304F4FF9384C4FF6F
:1008D800E31634FF8320C1020324810283244102EA
:1008E800032901028329C101032A8101832A4101C5
:1008F800032B0101832BC100032C81001301010389
:10090800678000008327490083A644009387F7FF88
:10091800638A870423A20400E38806FA83278918D8
:1009280033178A00832B4900B377F700639E0700CB
:10093800E780060083274900E39477F783278C1420
:10094800E38427F96FF0DFF58327C91883A54408E6
:100958003377F700631C070013850A00E780060059
:100968006FF05FFD232289006FF01FFB13850500E0
:08097800E78006006FF01FFC90
:04198000580000808B
:1019880000000000741C0080DC1C0080441D0080E6
:10199800000000000000000000000000000000003F
:1019A800000000000000000000000000000000002F
:1019B800000000000000000000000000000000001F
:1019C800000000000000000000000000000000000F
:1019D80000000000000000000000000000000000FF
:1019E80000000000000000000000000000000000EF
:1019F80000000000000000000000000000000000DF
:101A080000000000000000000000000000000000CE
:101A180000000000000000000000000000000000BE
:101A280000000000000000000100000000000000AD
:101A38000E33CDAB34126DE6ECDE05000B00000072
:101A4800000000000000000000000000000000008E
:101A5800000000000000000000000000000000007E
:101A6800000000000000000000000000000000006E
:101A7800000000000000000000000000000000005E
:101A8800000000000000000000000000000000004E
:101A9800000000000000000000000000000000003E
:101AA800000000000000000000000000000000002E
:101AB800000000000000000000000000000000001E
:101AC800000000000000000000000000000000000E
:101AD80000000000000000000000000000000000FE
:101AE80000000000000000000000000000000000EE
:101AF80000000000000000000000000000000000DE
:101B080000000000000000000000000000000000CD
:101B180000000000000000000000000000000000BD
:101B280000000000000000000000000000000000AD
:101B3800000000000000000000000000000000009D
:101B4800000000000000000000000000000000008D
:101B5800000000000000000000000000000000007D
:101B6800000000000000000000000000000000006D
:101B7800000000000000000000000000000000005D
:101B8800000000000000000000000000000000004D
:101B9800000000000000000000000000000000003D
:101BA800000000000000000000000000000000002D
:101BB800000000000000000000000000000000001D
:101BC800000000000000000000000000000000000D
:101BD80000000000000000000000000000000000FD
:101BE80000000000000000000000000000000000ED
:101BF80000000000000000000000000000000000DD
:101C080000000000000000000000000000000000CC
:101C180000000000000000000000000000000000BC
:101C280000000000000000000000000000000000AC
:101C3800000000000000000000000000000000009C
:101C4800000000000000000000000000000000008C
:101C5800000000000000000000000000000000007C
:101C6800000000000000000000000000000000006C
:101C7800000000000000000000000000000000005C
:101C8800000000000000000000000000000000004C
:101C9800000000000000000000000000000000003C
:101CA800000000000000000000000000000000002C
:101CB800000000000000000000000000000000001C
:101CC800000000000000000000000000000000000C
:101CD80000000000000000000000000000000000FC
:101CE80000000000000000000000000000000000EC
:101CF80000000000000000000000000000000000DC
:101D080000000000000000000000000000000000CB
:101D180000000000000000000000000000000000BB
:101D280000000000000000000000000000000000AB
:101D3800000000000000000000000000000000009B
:101D4800000000000000000000000000000000008B
:101D5800000000000000000000000000000000007B
:101D6800000000000000000000000000000000006B
:101D7800000000000000000000000000000000005B
:101D8800000000000000000000000000000000004B
:101D9800000000000000000000000000000000003B
:081DA800000000000000000033
:101DB0008819008000000070000000100000002062
:1000B8006780000067800000130101FD232681028C
:1000C80013040103232EA4FC232CB4FC232AC4FC10
:1000D8008327C4FD83A707002326F4FE832744FD56
:1000E8002322F4FE832744FE03C707008327C4FEA8
:1000F8002380E7008327C4FE93871700032744FE65
:10010800034717002380E7008327C4FE938727004F
:10011800032744FE034727002380E7008327C4FE04
:1001280093873700032744FE034737002380E700FF
:100138008327C4FE938747002326F4FE232404FE66
:100148006F004003832784FE032784FDB307F7006D
:1001580003C707008327C4FE2380E7008327C4FE64
:10016800938717002326F4FE832784FE93871700BE
:100178002324F4FE032784FE832744FDE344F7FC8D
:100188008327C4FD0327C4FE23A0E7001300000053
:100198000324C1021301010367800000130101FD5C
:1001A8002326810213040103232EA4FC232CB4FC70
:1001B8008327C4FD83A707002326F4FE832744FE74
:1001C8002320F4FE8327C4FE03C70700832704FE09
:1001D8002380E700832704FE938717000327C4FEC4
:1001E800034717002380E700832704FE938727002F
:1001F8000327C4FE034727002380E700832704FE64
:10020800938737000327C4FE034737002380E7009E
:100218008327C4FE938747002326F4FE232404FE85
:100228006F004003832784FE032784FDB307F7008C
:100238000327C4FE034707002380E7008327C4FE83
:10024800938717002326F4FE832784FE93871700DD
:100258002324F4FE032784FE832744FEE344F7FCAB
:100268008327C4FD0327C4FE23A0E7001300000072
:100278000324C1021301010367800000130101FF79
:100288002326810013040101130000000324C10088
:100298001301010167800000130101FE232E810074
:1002A800130401022326A4FE2324B4FE832784FE1C
:1002B8003727000023A2E7009307000013850700F3
:1002C8000324C1011301010267800000130101FE2C
:1002D800232E8100130401022326A4FE9307100095
:1002E800138507000324C101130101026780000080
:1002F800130101FF232681001304010113000000EC
:100308000324C1001301010167800000130101FFEC
:100318002326810013040101130000000324C100F7
:100328001301010167800000130101FD23268102EA
:1003380013040103232EA4FC232CB4FC232AC4FC9D
:10034800B70701002324F4FE232604FE6F00C00231
:100358008327C4FE032784FDB307F70083C707007C
:1003680013870700832784FE23A0E7008327C4FEA2
:10037800938717002326F4FE0327C4FE832744FD32
:10038800E348F7FC832744FD138507000324C102D3
:100398001301010367800000130101FD2326810278
:1003A80013040103232EA4FC8327C4FD63D807008C
:1003B8008327C4FDB307F040232EF4FC0327C4FDB4
:1003C800B73700009387078063D8E700B737000086
:1003D80093870780232EF4FC83A701C32326F4FE0A
:1003E80003A701C38327C4FD3307F70023A8E1C28D
:1003F8008327C4FE138507000324C10213010103E8
:1004080067800000130101FE232E1100232C8100B8
:10041800130401022326A4FE13050000EF00400E7A
:10042800130000008320C10103248101130101028C
:1004380067800000130101FF2326810013040101D6
:10044800130000000324C1001301010167800000AC
:10045800130101FF2326810013040101130000008A
:100468000324C1001301010167800000130101FF8B
:10047800232611002324810013040101EF00C00A80
:1004880093070500138507008320C100032481001A
:100498001301010167800000130101FF2326810079
:1004A80013040101130000000324C100130101011A
:1004B80067800000130101FF232681001304010156
:1004C80083A781C39386170023ACD1C21385070085
:1004D8000324C1001301010167800000130101FF1B
:1004E8002326810013040101130000000324C10026
:1004F80013010101678000006B10B50067800000E0
:100508006B000500678000006B40B5006780000045
:100518006B200500678000006B30000067800000DA
:1005280073251002678000007325000267800000B1
:10053800130540006B000500F32610029396F600A1
:10054800732600029315A6001316260037F1FF6FD5
:100558003301B1403301D1403301C100F326100209
:1005680063860600130500006B0005006780000025
:10057800130101FF23261100232481001304010124
:1005880013051000EFF0DFF7EFF0DFB21300000003
:10059800138507008320C100032481001301010192
:1005A800678000009305050093060000130600000D
:1005B800130500006F00C020130101FF9305000020
:1005C800232481002326110013040500EF00C0280E
:1005D80003A581C28327C50363840700E78007005A
:1005E80013050400EFF01FE2130101FF232481002B
:1005F8002322910037240080B72400809387C49772
:100608001304C4973304F4402326110013542440E0
:1006180063020402931424009384C4FFB384F40097
:1006280083A704001304F4FF9384C4FFE780070042
:10063800E31804FE8320C1000324810083244100C1
:100648001301010167800000130101FF23248100C9
:1006580023202101372400803729008093078497BD
:10066800130989973309F9402326110023229100A1
:100678001359294063000902130484979304000066
:10068800832704009384140013044400E7800700C0
:10069800E31899FE37240080372900809307849750
:1006A8001309C9973309F94013592940630009020E
:1006B8001304849793040000832704009384140090
:1006C80013044400E7800700E31899FE8320C10063
:1006D800032481008324410003290100130101013F
:1006E800678000001303F00013070500637EC30250
:1006F8009377F7006390070A63920508937606FFDD
:100708001376F600B386E6002320B7002322B7004D
:100718002324B7002326B70013070701E366D7FE93
:100728006314060067800000B306C3409396260052
:1007380097020000B38656006780C6002307B700FB
:10074800A306B7002306B700A305B7002305B70023
:10075800A304B7002304B700A303B7002303B7001B
:10076800A302B7002302B700A301B7002301B70013
:10077800A300B7002300B7006780000093F5F50FCA
:1007880093968500B3E5D50093960501B3E5D500AA
:100798006FF0DFF69396270097020000B3865600A5
:1007A80093820000E78006FA93800200938707FF90
:1007B8003307F7403306F600E378C3F66FF0DFF34C
:1007C80003A781C283278714638C070403A7470004
:1007D8001308F001634EE8061318270063060502A4
:1007E800338307012324C30883A88718130610003E
:1007F8003316E600B3E8C80023A417192324D3103E
:10080800930620006304D5021307170023A2E7000C
:10081800B387070123A4B700130500006780000011
:100828009307C7142324F7146FF05FFA83A6C71839
:100838001307170023A2E70033E6C60023A6C7184C
:10084800B387070123A4B7001305000067800000E1
:100858001305F0FF67800000130101FD23248101C7
:1008680003AC81C2232E3101232C4101232A5101DB
:1008780023286101232611022324810223229102C5
:100888002320210323267101930A0500138B0500F9
:10089800130A10009309F0FF03298C146308090256
:1008A800832449001384F4FF6342040293942400D0
:1008B800B304990063040B0483A74410638067059D
:1008C8001304F4FF9384C4FFE31634FF8320C102AA
:1008D8000324810283244102032901028329C101DF
:1008E800032A8101832A4101032B0101832BC100C3
:1008F800032C81001301010367800000832749004E
:1009080083A644009387F7FF638A870423A2040021
:10091800E38806FA8327891833178A00832B49004E
:10092800B377F700639E0700E78006008327490036
:10093800E39477F783278C14E38427F96FF0DFF5C6
:100948008327C91883A544083377F700631C070079
:1009580013850A00E78006006FF05FFD23228900F7
:100968006FF01FFB13850500E78006006FF01FFC82
:041978005800008093
:10198000000000006C1C0080D41C00803C1D008006
:101990000000000000000000000000000000000047
:1019A0000000000000000000000000000000000037
:1019B0000000000000000000000000000000000027
:1019C0000000000000000000000000000000000017
:1019D0000000000000000000000000000000000007
:1019E00000000000000000000000000000000000F7
:1019F00000000000000000000000000000000000E7
:101A000000000000000000000000000000000000D6
:101A100000000000000000000000000000000000C6
:101A200000000000000000000100000000000000B5
:101A30000E33CDAB34126DE6ECDE05000B0000007A
:101A40000000000000000000000000000000000096
:101A50000000000000000000000000000000000086
:101A60000000000000000000000000000000000076
:101A70000000000000000000000000000000000066
:101A80000000000000000000000000000000000056
:101A90000000000000000000000000000000000046
:101AA0000000000000000000000000000000000036
:101AB0000000000000000000000000000000000026
:101AC0000000000000000000000000000000000016
:101AD0000000000000000000000000000000000006
:101AE00000000000000000000000000000000000F6
:101AF00000000000000000000000000000000000E6
:101B000000000000000000000000000000000000D5
:101B100000000000000000000000000000000000C5
:101B200000000000000000000000000000000000B5
:101B300000000000000000000000000000000000A5
:101B40000000000000000000000000000000000095
:101B50000000000000000000000000000000000085
:101B60000000000000000000000000000000000075
:101B70000000000000000000000000000000000065
:101B80000000000000000000000000000000000055
:101B90000000000000000000000000000000000045
:101BA0000000000000000000000000000000000035
:101BB0000000000000000000000000000000000025
:101BC0000000000000000000000000000000000015
:101BD0000000000000000000000000000000000005
:101BE00000000000000000000000000000000000F5
:101BF00000000000000000000000000000000000E5
:101C000000000000000000000000000000000000D4
:101C100000000000000000000000000000000000C4
:101C200000000000000000000000000000000000B4
:101C300000000000000000000000000000000000A4
:101C40000000000000000000000000000000000094
:101C50000000000000000000000000000000000084
:101C60000000000000000000000000000000000074
:101C70000000000000000000000000000000000064
:101C80000000000000000000000000000000000054
:101C90000000000000000000000000000000000044
:101CA0000000000000000000000000000000000034
:101CB0000000000000000000000000000000000024
:101CC0000000000000000000000000000000000014
:101CD0000000000000000000000000000000000004
:101CE00000000000000000000000000000000000F4
:101CF00000000000000000000000000000000000E4
:101D000000000000000000000000000000000000D3
:101D100000000000000000000000000000000000C3
:101D200000000000000000000000000000000000B3
:101D300000000000000000000000000000000000A3
:101D40000000000000000000000000000000000093
:101D50000000000000000000000000000000000083
:101D60000000000000000000000000000000000073
:101D70000000000000000000000000000000000063
:101D80000000000000000000000000000000000053
:101D90000000000000000000000000000000000043
:081DA00000000000000000003B
:101DA8008019008000000070000000100000002072
:040000058000000077
:00000001FF

View file

@ -14,6 +14,7 @@
#define READ 4
#define WRITE 5
#define FSTAT 6
#define OPEN 7
#define FILE_IO_WRITE 0x71000000
#define FILE_IO_READ 0x72000000
@ -30,13 +31,18 @@ void upload(char ** ptr, char * src, int size)
{
char * drain = *ptr;
// *((int *) drain) = size;
char * size_ptr = (char *) size;
char * size_ptr = (char *) &size;
drain[0] = size_ptr[0];
drain[1] = size_ptr[1];
drain[2] = size_ptr[2];
drain[3] = size_ptr[3];
// vx_printf("size: ", (unsigned) size);
// vx_printf("drain_ptr: ", (unsigned) drain);
drain += 4;
@ -46,6 +52,11 @@ void upload(char ** ptr, char * src, int size)
drain += 1;
}
unsigned drain_val = (unsigned) drain;
drain_val += (drain_val%4);
drain = (char *) drain_val;
*ptr = drain;
}
@ -74,12 +85,17 @@ void download(char ** ptr, char * drain)
src += 1;
}
unsigned src_val = (unsigned) src;
src_val += (src_val%4);
src = (char *) src_val;
*ptr = src;
}
void _close()
{
//vx_print_str("Hello from _close\n");
vx_print_str("Hello from _close\n");
}
int _fstat(int file, struct stat * st)
@ -111,9 +127,8 @@ int _fstat(int file, struct stat * st)
// download((char **) &read_buffer, (char *) &value);
// st->st_blocks = value;
//vx_print_str("Hello from fstat\n");
st->st_mode = S_IFCHR;
// st->st_mode = 33279;
vx_print_str("Hello from fstat\n");
// // st->st_mode = 33279;
// vx_printf("st_mode: ", st->st_mode);
// vx_printf("st_dev: ", st->st_dev);
@ -125,52 +140,54 @@ int _fstat(int file, struct stat * st)
// vx_printf("st_blksize: ", st->st_blksize);
// vx_printf("st_blocks: ", st->st_blocks);
st->st_mode = S_IFCHR;
return 0;
}
int _isatty (int file)
{
//vx_print_str("Hello from _isatty\n");
vx_print_str("Hello from _isatty\n");
return 1;
}
void _lseek()
{
//vx_print_str("Hello from _lseek\n");
vx_print_str("Hello from _lseek\n");
}
void _read()
{
//vx_print_str("Hello from _read\n");
vx_print_str("Hello from _read\n");
}
int _write (int file, char *buf, int nbytes)
{
// char * write_buffer = (char *) FILE_IO_WRITE;
char * write_buffer = (char *) FILE_IO_WRITE;
// int cmd_id = WRITE;
int cmd_id = WRITE;
// upload((char **) &write_buffer, (char *) &cmd_id, sizeof(int));
// upload((char **) &write_buffer, (char *) &file , sizeof(int));
// upload((char **) &write_buffer, (char *) buf , nbytes);
upload((char **) &write_buffer, (char *) &cmd_id, sizeof(int));
upload((char **) &write_buffer, (char *) &file , sizeof(int));
upload((char **) &write_buffer, (char *) buf , nbytes);
// trap_to_simulator();
trap_to_simulator();
//vx_print_str("Hello from _write\n");
vx_print_str("Hello from _write\n");
int i;
// int i;
unsigned int volatile * const print_addr = (unsigned int *) 0x00010000;
// unsigned int volatile * const print_addr = (unsigned int *) 0x00010000;
for (i = 0; i < nbytes; i++)
{
(*print_addr) = buf[i];
}
// for (i = 0; i < nbytes; i++)
// {
// (*print_addr) = buf[i];
// }
return nbytes;
@ -219,18 +236,37 @@ void * _sbrk (int nbytes)
void _exit(int val)
{
//vx_print_str("Hello from exit\n");
vx_print_str("Hello from exit\n");
vx_tmc(0);
}
void _open()
int _open(const char *name, int flags, int mode)
{
//vx_print_str("ERROR: _open not yet implemented\n");
// vx_print_str("ERROR: _open not yet implemented\n");
// char * write_buffer = (char *) FILE_IO_WRITE;
// int cmd_id = OPEN;
// upload((char **) &write_buffer, (char *) &cmd_id, sizeof(int));
// upload((char **) &write_buffer, (char *) &name, sizeof (char *));
// upload((char **) &write_buffer, (char *) &flags , sizeof(int));
// upload((char **) &write_buffer, (char *) & mode , nbytes);
// trap_to_simulator();
vx_print_str("Hello from _write\n");
return 0;
}
void _kill()
{
//vx_print_str("ERROR: _kill not yet implemented\n");
vx_print_str("ERROR: _kill not yet implemented\n");
}
unsigned _getpid()
@ -240,21 +276,21 @@ unsigned _getpid()
void _unlink()
{
//vx_print_str("ERROR: _unlink not yet implemented\n");
vx_print_str("ERROR: _unlink not yet implemented\n");
}
static int curr_time = 0;
int _gettimeofday()
{
//vx_print_str("ERROR: _gettimeofday not yet implemented\n");
vx_print_str("ERROR: _gettimeofday not yet implemented\n");
return curr_time++;
}
void _link()
{
//vx_print_str("ERROR: _link not yet implemented\n");
vx_print_str("ERROR: _link not yet implemented\n");
}

View file

@ -55,7 +55,7 @@ vx_set_sp:
.option norelax
1:auipc gp, %pcrel_hi(__global_pointer$)
addi gp, gp, %pcrel_lo(1b)
.option po
.option pop
csrr a3, 0x21 # get wid
slli a3, a3, 0x1a # shift by wid

View file

@ -41,6 +41,7 @@ void vx_spawnWarps(unsigned numWarps, unsigned numThreads, func_t func_ptr, void
}
unsigned pocl_threads;
uint8_t * pocl_args;
uint8_t * pocl_ctx;
vx_pocl_workgroup_func pocl_pfn;
@ -48,9 +49,10 @@ vx_pocl_workgroup_func pocl_pfn;
void pocl_spawn_real()
{
vx_tmc(4);
vx_tmc(pocl_threads);
int x = vx_threadID();
int y = vx_warpID();
(pocl_pfn)( pocl_args, pocl_ctx, x, y, 0);
if (y != 0)
@ -64,12 +66,23 @@ void pocl_spawn_real()
void pocl_spawn(struct context_t * ctx, const void * pfn, void * arguments)
{
pocl_pfn = (vx_pocl_workgroup_func) pfn;
pocl_ctx = (uint8_t *) ctx;
pocl_args = (uint8_t *) arguments;
if (ctx->num_groups[2] > 1)
{
printf("ERROR: pocl_spawn doesn't support Z dimension yet!\n");
return;
}
pocl_threads = ctx->num_groups[0];
pocl_pfn = (vx_pocl_workgroup_func) pfn;
pocl_ctx = (uint8_t *) ctx;
pocl_args = (uint8_t *) arguments;
pocl_spawn_real();
if (ctx->num_groups[1] > 1)
{
vx_wspawn(ctx->num_groups[1], (unsigned) &pocl_spawn_real);
}
pocl_spawn_real();
// int z;
// int y;

View file

@ -4,6 +4,7 @@
#define VX_API_
#include <inttypes.h>
#include <stdio.h>
#ifdef __cplusplus
extern "C" {