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) { int main (int argc, char **argv) {
vx_tmc(1); 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. // Allocate memories for input arrays and output arrays.
A = (unsigned*)malloc(sizeof(unsigned)*SIZE); 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 CC_FLAGS = -march=rv32im -mabi=ilp32 -O0 -Wl,-Bstatic,-T,linker.ld -ffreestanding -nostdlib
DMP = /opt/riscv/bin/riscv32-unknown-elf-objdump DMP = riscv32-unknown-elf-objdump
CPY = /opt/riscv/bin/riscv32-unknown-elf-objcopy CPY = riscv32-unknown-elf-objcopy
NEWLIB = ../../newlib/newlib.c
VX_STR = ../../startup/vx_start.s VX_STR = ../../startup/vx_start.s
VX_INT = ../../intrinsics/vx_intrinsics.s VX_INT = ../../intrinsics/vx_intrinsics.s
VX_IO = ../../io/vx_io.s ../../io/vx_io.c VX_IO = ../../io/vx_io.s ../../io/vx_io.c
VX_API = ../../vx_api/vx_api.c VX_API = ../../vx_api/vx_api.c
VX_TEST = ../../tests/tests.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 all: HEX DUMP ELF
DUMP: ELF DUMP: ELF
$(DMP) -D vx_simple_main.elf > vx_simple_main.dump $(DMP) -D $(VX_MAIN).elf > $(VX_MAIN).dump
HEX: ELF HEX: ELF
$(CPY) -O ihex vx_simple_main.elf vx_simple_main.hex $(CPY) -O ihex $(VX_MAIN).elf $(VX_MAIN).hex
ELF: 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 .type vx_vec_test, @function
.global vx_vec_test .global vx_vec_test
vx_vec_test: vx_vec_test:
vsetvli t0, x0, e32
vadd.vv v0, v0, v0
ret ret

View File

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

File diff suppressed because it is too large Load Diff

View File

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

View File

@@ -14,6 +14,7 @@
#define READ 4 #define READ 4
#define WRITE 5 #define WRITE 5
#define FSTAT 6 #define FSTAT 6
#define OPEN 7
#define FILE_IO_WRITE 0x71000000 #define FILE_IO_WRITE 0x71000000
#define FILE_IO_READ 0x72000000 #define FILE_IO_READ 0x72000000
@@ -30,13 +31,18 @@ void upload(char ** ptr, char * src, int size)
{ {
char * drain = *ptr; char * drain = *ptr;
// *((int *) drain) = size; // *((int *) drain) = size;
char * size_ptr = (char *) size; char * size_ptr = (char *) &size;
drain[0] = size_ptr[0]; drain[0] = size_ptr[0];
drain[1] = size_ptr[1]; drain[1] = size_ptr[1];
drain[2] = size_ptr[2]; drain[2] = size_ptr[2];
drain[3] = size_ptr[3]; drain[3] = size_ptr[3];
// vx_printf("size: ", (unsigned) size);
// vx_printf("drain_ptr: ", (unsigned) drain);
drain += 4; drain += 4;
@@ -46,6 +52,11 @@ void upload(char ** ptr, char * src, int size)
drain += 1; drain += 1;
} }
unsigned drain_val = (unsigned) drain;
drain_val += (drain_val%4);
drain = (char *) drain_val;
*ptr = drain; *ptr = drain;
} }
@@ -74,12 +85,17 @@ void download(char ** ptr, char * drain)
src += 1; src += 1;
} }
unsigned src_val = (unsigned) src;
src_val += (src_val%4);
src = (char *) src_val;
*ptr = src; *ptr = src;
} }
void _close() void _close()
{ {
//vx_print_str("Hello from _close\n"); vx_print_str("Hello from _close\n");
} }
int _fstat(int file, struct stat * st) int _fstat(int file, struct stat * st)
@@ -111,9 +127,8 @@ int _fstat(int file, struct stat * st)
// download((char **) &read_buffer, (char *) &value); // download((char **) &read_buffer, (char *) &value);
// st->st_blocks = value; // st->st_blocks = value;
//vx_print_str("Hello from fstat\n"); vx_print_str("Hello from fstat\n");
st->st_mode = S_IFCHR; // // st->st_mode = 33279;
// st->st_mode = 33279;
// vx_printf("st_mode: ", st->st_mode); // vx_printf("st_mode: ", st->st_mode);
// vx_printf("st_dev: ", st->st_dev); // 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_blksize: ", st->st_blksize);
// vx_printf("st_blocks: ", st->st_blocks); // vx_printf("st_blocks: ", st->st_blocks);
st->st_mode = S_IFCHR;
return 0; return 0;
} }
int _isatty (int file) int _isatty (int file)
{ {
//vx_print_str("Hello from _isatty\n"); vx_print_str("Hello from _isatty\n");
return 1; return 1;
} }
void _lseek() void _lseek()
{ {
//vx_print_str("Hello from _lseek\n"); vx_print_str("Hello from _lseek\n");
} }
void _read() void _read()
{ {
//vx_print_str("Hello from _read\n"); vx_print_str("Hello from _read\n");
} }
int _write (int file, char *buf, int nbytes) 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 *) &cmd_id, sizeof(int));
// upload((char **) &write_buffer, (char *) &file , sizeof(int)); upload((char **) &write_buffer, (char *) &file , sizeof(int));
// upload((char **) &write_buffer, (char *) buf , nbytes); 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++) // for (i = 0; i < nbytes; i++)
{ // {
(*print_addr) = buf[i]; // (*print_addr) = buf[i];
} // }
return nbytes; return nbytes;
@@ -219,18 +236,37 @@ void * _sbrk (int nbytes)
void _exit(int val) void _exit(int val)
{ {
//vx_print_str("Hello from exit\n"); vx_print_str("Hello from exit\n");
vx_tmc(0); 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() void _kill()
{ {
//vx_print_str("ERROR: _kill not yet implemented\n"); vx_print_str("ERROR: _kill not yet implemented\n");
} }
unsigned _getpid() unsigned _getpid()
@@ -240,21 +276,21 @@ unsigned _getpid()
void _unlink() 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; static int curr_time = 0;
int _gettimeofday() int _gettimeofday()
{ {
//vx_print_str("ERROR: _gettimeofday not yet implemented\n"); vx_print_str("ERROR: _gettimeofday not yet implemented\n");
return curr_time++; return curr_time++;
} }
void _link() 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 .option norelax
1:auipc gp, %pcrel_hi(__global_pointer$) 1:auipc gp, %pcrel_hi(__global_pointer$)
addi gp, gp, %pcrel_lo(1b) addi gp, gp, %pcrel_lo(1b)
.option po .option pop
csrr a3, 0x21 # get wid csrr a3, 0x21 # get wid
slli a3, a3, 0x1a # shift by 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_args;
uint8_t * pocl_ctx; uint8_t * pocl_ctx;
vx_pocl_workgroup_func pocl_pfn; vx_pocl_workgroup_func pocl_pfn;
@@ -48,9 +49,10 @@ vx_pocl_workgroup_func pocl_pfn;
void pocl_spawn_real() void pocl_spawn_real()
{ {
vx_tmc(4); vx_tmc(pocl_threads);
int x = vx_threadID(); int x = vx_threadID();
int y = vx_warpID(); int y = vx_warpID();
(pocl_pfn)( pocl_args, pocl_ctx, x, y, 0); (pocl_pfn)( pocl_args, pocl_ctx, x, y, 0);
if (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) void pocl_spawn(struct context_t * ctx, const void * pfn, void * arguments)
{ {
pocl_pfn = (vx_pocl_workgroup_func) pfn; if (ctx->num_groups[2] > 1)
pocl_ctx = (uint8_t *) ctx; {
pocl_args = (uint8_t *) arguments; 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 z;
// int y; // int y;

View File

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