read zeros if reading, or do nothing if writing. */
else
{
- bzero (myaddr, i);
+ memset (myaddr, '\0', i);
returnval = EIO;
}
if ((name[0] == 'v' || name[0] == 'V')
&& (((name[1] & -8) == '0' && name[2] == '\0')
- || !strcmp (name, "vl")
- || !strcmp (name, "vs")
- || !strcmp (name, "vm")))
+ || STREQ (name, "vl")
+ || STREQ (name, "vs")
+ || STREQ (name, "vm")))
return 1;
else return 0;
}
char *name = var->name;
value val;
struct type *type;
+ struct type *range_type;
long len = *read_vector_register (VL_REGNUM);
if (len <= 0 || len > 128) len = 128;
- if (!strcmp (name, "vl"))
+ if (STREQ (name, "vl"))
{
val = value_from_longest (builtin_type_int,
(LONGEST) *read_vector_register_1 (VL_REGNUM));
}
- else if (!strcmp (name, "vs"))
+ else if (STREQ (name, "vs"))
{
val = value_from_longest (builtin_type_int,
(LONGEST) *read_vector_register_1 (VS_REGNUM));
}
- else if (!strcmp (name, "vm"))
+ else if (STREQ (name, "vm"))
{
long vm[4];
long i, *p;
- bcopy (read_vector_register_1 (VM_REGNUM), vm, sizeof vm);
- type = vector_type (builtin_type_int, len);
+ memcpy (vm, read_vector_register_1 (VM_REGNUM), sizeof vm);
+ range_type =
+ create_range_type ((struct type *) NULL, builtin_type_int, 0, len - 1);
+ type =
+ create_array_type ((struct type *) NULL, builtin_type_int, range_type);
val = allocate_value (type);
p = (long *) VALUE_CONTENTS (val);
for (i = 0; i < len; i++)
}
else if (name[0] == 'V')
{
- type = vector_type (builtin_type_long_long, len);
+ range_type =
+ create_range_type ((struct type *) NULL, builtin_type_int 0, len - 1);
+ type =
+ create_array_type ((struct type *) NULL, builtin_type_long_long,
+ range_type);
val = allocate_value (type);
- bcopy (read_vector_register_1 (name[1] - '0'),
- VALUE_CONTENTS (val), TYPE_LENGTH (type));
+ memcpy (VALUE_CONTENTS (val),
+ read_vector_register_1 (name[1] - '0'),
+ TYPE_LENGTH (type));
}
else if (name[0] == 'v')
{
long *p1, *p2;
- type = vector_type (builtin_type_long, len);
+ range_type =
+ create_range_type ((struct type *) NULL, builtin_type_int 0, len - 1);
+ type =
+ create_array_type ((struct type *) NULL, builtin_type_long,
+ range_type);
val = allocate_value (type);
p1 = read_vector_register_1 (name[1] - '0');
p2 = (long *) VALUE_CONTENTS (val);
return val;
}
-/* Construct the type for a vector register's value --
- array[LENGTH] of ELEMENT_TYPE. */
-
-static struct type *
-vector_type (element_type, length)
- struct type *element_type;
- long length;
-{
- struct type *type = (struct type *) xmalloc (sizeof (struct type));
- bzero (type, sizeof type);
- TYPE_CODE (type) = TYPE_CODE_ARRAY;
- TYPE_TARGET_TYPE (type) = element_type;
- TYPE_LENGTH (type) = length * TYPE_LENGTH (TYPE_TARGET_TYPE (type));
- return type;
-}
-
/* Handle a new value assigned to a trapped internal variable */
void
char *name = var->name;
long long newval = value_as_long (val);
- if (!strcmp (name, "vl"))
+ if (STREQ (name, "vl"))
write_vector_register (VL_REGNUM, 0, newval);
- else if (!strcmp (name, "vs"))
+ else if (STREQ (name, "vs"))
write_vector_register (VS_REGNUM, 0, newval);
else if (name[0] == 'c' || name[0] == 'C')
write_comm_register (atoi (&name[1]), newval);
- else if (!strcmp (name, "vm"))
+ else if (STREQ (name, "vm"))
error ("can't assign to $vm");
else
{
sequential = !sequential;
printf_filtered ("%s\n", sequential ? "off" : "on");
}
- else if (!strcmp (arg, "on"))
+ else if (STREQ (arg, "on"))
sequential = 0;
- else if (!strcmp (arg, "off"))
+ else if (STREQ (arg, "off"))
sequential = 1;
else error ("valid args are `on', to allow instructions to overlap, or\n\
`off', to prevent it and thereby pinpoint exceptions.");
if (!strncmp (arg, "fixed", strlen (arg)))
parallel = 2;
- else if (!strcmp (arg, "on"))
+ else if (STREQ (arg, "on"))
parallel = 1;
- else if (!strcmp (arg, "off"))
+ else if (STREQ (arg, "off"))
parallel = 0;
else error ("valid args are `on', to allow multiple threads, or\n\
`fixed', to force multiple threads, or\n\
ioctl (inferior_fd, PIXRDCREGS, &ps);
}
+ /* FIXME: stop_signal is from target.h but stop_sigcode is a
+ convex-specific thing. */
printf_filtered ("Current thread %d stopped with signal %d.%d (%s).\n",
inferior_thread, stop_signal, stop_sigcode,
subsig_name (stop_signal, stop_sigcode));
}
}
\f
+void
_initialize_convex_dep ()
{
add_com ("alias", class_support, alias_command,