comparison src/mule-ccl.c @ 241:f955c73f5258 r20-5b19

Import from CVS: tag r20-5b19
author cvs
date Mon, 13 Aug 2007 10:16:16 +0200
parents 78f53ef88e17
children f220cc83d72e
comparison
equal deleted inserted replaced
240:835e739f3c17 241:f955c73f5258
965 int i; 965 int i;
966 966
967 CHECK_VECTOR (ccl_prog); 967 CHECK_VECTOR (ccl_prog);
968 CHECK_VECTOR (reg); 968 CHECK_VECTOR (reg);
969 if (XVECTOR_LENGTH (reg) != 8) 969 if (XVECTOR_LENGTH (reg) != 8)
970 error ("Invalid length of vector REGISTERS"); 970 signal_simple_error ("Vector should be of length 8", reg);
971 971
972 setup_ccl_program (&ccl, ccl_prog); 972 setup_ccl_program (&ccl, ccl_prog);
973 for (i = 0; i < 8; i++) 973 for (i = 0; i < 8; i++)
974 ccl.reg[i] = (INTP (XVECTOR_DATA (reg)[i]) 974 ccl.reg[i] = (INTP (XVECTOR_DATA (reg)[i])
975 ? XINT (XVECTOR_DATA (reg)[i]) 975 ? XINT (XVECTOR_DATA (reg)[i])
1010 struct gcpro gcpro1, gcpro2, gcpro3; 1010 struct gcpro gcpro1, gcpro2, gcpro3;
1011 1011
1012 CHECK_VECTOR (ccl_prog); 1012 CHECK_VECTOR (ccl_prog);
1013 CHECK_VECTOR (status); 1013 CHECK_VECTOR (status);
1014 if (XVECTOR_LENGTH (status) != 9) 1014 if (XVECTOR_LENGTH (status) != 9)
1015 error ("Invalid length of vector STATUS"); 1015 signal_simple_error ("Vector should be of length 9", status);
1016 CHECK_STRING (str); 1016 CHECK_STRING (str);
1017 GCPRO3 (ccl_prog, status, str); 1017 GCPRO3 (ccl_prog, status, str);
1018 1018
1019 setup_ccl_program (&ccl, ccl_prog); 1019 setup_ccl_program (&ccl, ccl_prog);
1020 for (i = 0; i < 8; i++) 1020 for (i = 0; i < 8; i++)
1038 XVECTOR_DATA (status)[i] = make_int(ccl.reg[i]); 1038 XVECTOR_DATA (status)[i] = make_int(ccl.reg[i]);
1039 XSETINT (XVECTOR_DATA (status)[8], ccl.ic); 1039 XSETINT (XVECTOR_DATA (status)[8], ccl.ic);
1040 UNGCPRO; 1040 UNGCPRO;
1041 1041
1042 val = make_string (Dynarr_atp (outbuf, 0), produced); 1042 val = make_string (Dynarr_atp (outbuf, 0), produced);
1043 free (outbuf); 1043 Dynarr_free (outbuf);
1044 QUIT; 1044 QUIT;
1045 if (ccl.status != CCL_STAT_SUCCESS 1045 if (ccl.status != CCL_STAT_SUCCESS
1046 && ccl.status != CCL_STAT_SUSPEND) 1046 && ccl.status != CCL_STAT_SUSPEND)
1047 error ("Error in CCL program at %dth code", ccl.ic); 1047 error ("Error in CCL program at %dth code", ccl.ic);
1048 1048