diff options
author | Doug Evans <dje@google.com> | 1998-04-07 03:22:22 +0000 |
---|---|---|
committer | Doug Evans <dje@google.com> | 1998-04-07 03:22:22 +0000 |
commit | a9589a2ca77f8463d95d90f8711fd5ca8c0fa633 (patch) | |
tree | 4cb4adc24dea7c5b19faaa5aefafda9469e1fdf8 /gas | |
parent | 2df3bc219261566ea952dbcb7fc17bf37a321a54 (diff) | |
download | gdb-a9589a2ca77f8463d95d90f8711fd5ca8c0fa633.zip gdb-a9589a2ca77f8463d95d90f8711fd5ca8c0fa633.tar.gz gdb-a9589a2ca77f8463d95d90f8711fd5ca8c0fa633.tar.bz2 |
* config/tc-dvp.c (assemble_vif): 0 is a valid length value (= max+1).
(install_vif_length): 0 is a valid length value (= max+1).
Diffstat (limited to 'gas')
-rw-r--r-- | gas/ChangeLog | 2 | ||||
-rw-r--r-- | gas/config/tc-dvp.c | 11 |
2 files changed, 8 insertions, 5 deletions
diff --git a/gas/ChangeLog b/gas/ChangeLog index 34db311..d7664d9 100644 --- a/gas/ChangeLog +++ b/gas/ChangeLog @@ -2,6 +2,8 @@ start-sanitize-sky Mon Apr 6 17:08:47 1998 Doug Evans <devans@canuck.cygnus.com> * config/tc-dvp.c (assemble_vif): Watch for macro insns. + 0 is a valid length value (= max+1). + (install_vif_length): 0 is a valid length value (= max+1). end-sanitize-sky Mon Apr 6 12:06:39 1998 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de> diff --git a/gas/config/tc-dvp.c b/gas/config/tc-dvp.c index b3c523a..f605b06 100644 --- a/gas/config/tc-dvp.c +++ b/gas/config/tc-dvp.c @@ -569,7 +569,7 @@ assemble_vif (str) /* Ensure relaxable fragments are in their own fragment. Otherwise md_apply_fix3 mishandles fixups to insns earlier - in the fragment (because we set fr_opcode for the `direct' insn + in the fragment (because we set fr_opcode for the `mpg' insn because it can move in the fragment). */ frag_wane (frag_now); frag_new (0); @@ -762,7 +762,7 @@ assemble_vif (str) { /* data_len == -1 means the value must be computed from the data. */ - if (data_len == 0 || data_len <= -2) + if (data_len <= -2) as_bad ("invalid data length"); if (output_vif && data_len != -1) @@ -1345,7 +1345,7 @@ md_operand (expressionP) /* Advance over the '*'. */ ++input_line_pointer; } - /* Check if this is a '*' for mpgloc. */ + /* Check if this is a '*' for unpackloc. */ else if (cur_opcode && (cur_opcode->flags & VIF_OPCODE_UNPACK) != 0 && (cur_operand->flags & DVP_OPERAND_UNPACK_ADDRESS) != 0 @@ -2246,8 +2246,9 @@ install_vif_length (buf, len) as_bad ("missing `stcycle', can't compute length of `unpack' insn"); len = 1; } - if (len < 1 || len > 256) - as_bad ("`unpack' data length must be between 1 and 256"); + if (len < 0 || len > 256) + as_bad ("`unpack' data length must be between 0 and 256"); + /* 256 is recorded as 0 in the insn */ len = len == 256 ? 0 : len; buf[2] = len; } |