Changeset 99cf296a79a8b1768c85b7bd9192fcdf54e032f3

User picture

Commiter: Charles Childers

Author: Charles Childers

Parent: f844cab390

(2010/03/08 23:35) Almost 2 years ago

disallow negative addresses in retro-fast

Affected files

Updated vm/fast-console/vm.c Download diff

f844cab390ba38cd43e55b4e54991176a9176c4d99cf296a79a8b1768c85b7bd9192fcdf54e032f3
163
            vm->rsp++;
163
            vm->rsp++;
164
            TORS = (vm->ip);
164
            TORS = (vm->ip);
165
            vm->ip = vm->image[vm->ip];
165
            vm->ip = vm->image[vm->ip];
166
            if (vm->image[vm->ip+1] == 0)
166
            if (vm->ip < 0)
167
            {
167
            {
168
              vm->ip++;
168
              vm->ip = IMAGE_SIZE;
169
              return;
169
            }
170
            }
170
            if (vm->image[vm->ip+1] == 0)
171
            else
171
            {
172
            {
172
              vm->ip++;
173
              if (vm->image[vm->ip+1] == 0)
174
                vm->ip++;
175
              if (vm->image[vm->ip+1] == 0)
176
                vm->ip++;
173
            }
177
            }
174
            NEXT;
178
            NEXT;
175
179
...
...
181
185
182
  fVM_JUMP: vm->ip++;
186
  fVM_JUMP: vm->ip++;
183
            vm->ip = VMOP;
187
            vm->ip = VMOP;
184
            if (vm->image[vm->ip+1] == 0)
188
            if (vm->ip < 0)
185
            {
189
            {
186
              vm->ip++;
190
              vm->ip = IMAGE_SIZE;
191
              return;
187
            }
192
            }
188
            if (vm->image[vm->ip+1] == 0)
193
            else
189
            {
194
            {
190
              vm->ip++;
195
              if (vm->image[vm->ip+1] == 0)
196
                vm->ip++;
197
              if (vm->image[vm->ip+1] == 0)
198
                vm->ip++;
191
            }
199
            }
192
            NEXT;
200
            NEXT;
193
201
...
...
720
            vm->rsp++;
728
            vm->rsp++;
721
            TORS = (vm->ip);
729
            TORS = (vm->ip);
722
            vm->ip = vm->image[vm->ip];
730
            vm->ip = vm->image[vm->ip];
723
            if (vm->image[vm->ip+1] == 0)
731
            if (vm->ip < 0)
724
            {
732
            {
725
              vm->ip++;
733
              vm->ip = IMAGE_SIZE;
734
              return;
726
            }
735
            }
727
            if (vm->image[vm->ip+1] == 0)
736
            else
728
            {
737
            {
729
              vm->ip++;
738
              if (vm->image[vm->ip+1] == 0)
739
                vm->ip++;
740
              if (vm->image[vm->ip+1] == 0)
741
                vm->ip++;
730
            }
742
            }
731
            NEXT;
743
            NEXT;
732
}
744
}