OpenCores
Issue List
Help about offset of branch ahead. #1
Open mcafruni opened this issue about 6 years ago
mcafruni commented about 6 years ago

Hi, there is a problem in gasm that I can't resolve yet. When a branch instruction in positive direction of pc is compiled, it's offset points to a negative direction. See my code for a buble sort program, The three blez offsets is wrong, would be (0005) to work properly. Bonjour, il y a un problème dans GASM que je ne peux pas résoudre pour le moment. Lorsqu'une instruction de branchement dans le sens positif de pc est compilée, son décalage pointe vers un sens négatif. Voir mon code pour un programme de tri buble, Les trois compensations de blez sont fausses, serait (0005) de fonctionner correctement ci-dessous:

1 0000 20840000 addi $a0, $a0, 0 ; current iteraction 2 0004 20A50003 addi $a1, $a1, 3 ; max iteractions (nr. elements -1) 3 0008 8C0900B4 lw $t1, 180($zero) ; prefetching 4 000C 8C0A00B8 lw $t2, 184($zero) 5 0010 8C0B00BC lw $t3, 188($zero) 6 0014 8C0C00C0 lw $t4, 192($zero) 7 loop: 8 0018 012A7822 sub $t7, $t1, $t2 9 001C 19E0FFDB(19E00005) blez $t7, salto21 10 0020 21500000 addi $s1, $t2, 0 11 0024 21310000 addi $s2, $t1, 0 12 0028 22090000 addi $t1, $s1, 0 13 002C 222A0000 addi $t2, $s2, 0 14 salto21: 15 0030 014B7822 sub $t7, $t2, $t3 16 0034 19E0FFE1(19E00005) blez $t7, salto32 17 0038 21710000 addi $s2, $t3, 0 18 003C 21520000 addi $s3, $t2, 0 19 0040 222A0000 addi $t2, $s2, 0 20 0044 224B0000 addi $t3, $s3, 0 21 salto32: 22 0048 016C7822 sub $t7, $t3, $t4 23 004C 19E0FFE7(19E00005) blez $t7, salto43 24 0050 21920000 addi $s3, $t4, 0 25 0054 21730000 addi $s4, $t3, 0 26 0058 224B0000 addi $t3, $s3, 0 27 005C 226C0000 addi $t4, $s4, 0 28 salto43: 29 0060 20840001 addi $a0, $a0, 1 30 0064 1485FFED(okay) bne $a0, $a1, loop
31 org 180 32 00B4 00000002 dcw 2 33 00B8 FFFFFFFF dcw -1 34 00BC 00000001 dcw 1 35 00C0 00000000 dcw 0 36
Table des étiquettes : salto43 0060 salto32 0048 salto21 0030 loop 0018 Une idée ? Merci d'avance! Miguel

louismarie was assigned about 6 years ago
mcafruni commented about 6 years ago

Oh, merci beaucoup à tous pour avoir partagé votre miniMIPS! Je l'ai modifié et l'ai utilisé pour le travail de mon diplôme. =)

mcafruni commented almost 6 years ago

...The three blez offsets are wrong... :P

mcafruni commented almost 6 years ago

Now I'm thinking that the problem could be my pc or OS version... There isn't bug probably.


Assignee
louismarie
Labels
Request