mirror of
https://github.com/espressif/binutils-gdb.git
synced 2025-06-25 04:49:54 +08:00
gas/
2005-10-12 Jan Beulich <jbeulich@novell.com> * config/tc-ia64.c (dot_reg_val): Use expression_and_evaluate. (dot_pred_rel): Likewise. (parse_operand): Likewise. (ia64_unrecognized_line): Likewise. (md_operand): Likewise. gas/testsuite/ 2005-10-12 Jan Beulich <jbeulich@novell.com> * gas/ia64/forward.[sd]: New. * gas/ia64/ia64.exp: Run new test.
This commit is contained in:
@ -1,7 +1,15 @@
|
|||||||
|
2005-10-12 Jan Beulich <jbeulich@novell.com>
|
||||||
|
|
||||||
|
* config/tc-ia64.c (dot_reg_val): Use expression_and_evaluate.
|
||||||
|
(dot_pred_rel): Likewise.
|
||||||
|
(parse_operand): Likewise.
|
||||||
|
(ia64_unrecognized_line): Likewise.
|
||||||
|
(md_operand): Likewise.
|
||||||
|
|
||||||
2005-10-11 Jan Beulich <jbeulich@novell.com>
|
2005-10-11 Jan Beulich <jbeulich@novell.com>
|
||||||
|
|
||||||
* expr.h (enum expr_mode): New.
|
* expr.h (enum expr_mode): New.
|
||||||
(expression): Pass thrid argument to expr.
|
(expression): Pass third argument to expr.
|
||||||
(expression_and_evaluate): New.
|
(expression_and_evaluate): New.
|
||||||
(deferred_expression): New.
|
(deferred_expression): New.
|
||||||
(expr): Add third parameter.
|
(expr): Add third parameter.
|
||||||
@ -23,7 +31,7 @@
|
|||||||
deferred_expression. Pass mode argument to itself and md_parse_name.
|
deferred_expression. Pass mode argument to itself and md_parse_name.
|
||||||
Check mode before trying to evaluate symbol. Call
|
Check mode before trying to evaluate symbol. Call
|
||||||
symbol_clone_if_forward_ref for both operands.
|
symbol_clone_if_forward_ref for both operands.
|
||||||
(expr): Add thrid parameter. Pass mode to operand and itself.
|
(expr): Add third parameter. Pass mode to operand and itself.
|
||||||
Optionally call resolve_expression.
|
Optionally call resolve_expression.
|
||||||
(resolve_expression): New.
|
(resolve_expression): New.
|
||||||
(get_single_number): Pass second argument to operand.
|
(get_single_number): Pass second argument to operand.
|
||||||
|
@ -5103,7 +5103,7 @@ dot_reg_val (dummy)
|
|||||||
{
|
{
|
||||||
expressionS reg;
|
expressionS reg;
|
||||||
|
|
||||||
expression (®);
|
expression_and_evaluate (®);
|
||||||
if (reg.X_op != O_register)
|
if (reg.X_op != O_register)
|
||||||
{
|
{
|
||||||
as_bad (_("Register name expected"));
|
as_bad (_("Register name expected"));
|
||||||
@ -5275,7 +5275,7 @@ dot_pred_rel (type)
|
|||||||
int regno;
|
int regno;
|
||||||
expressionS pr, *pr1, *pr2;
|
expressionS pr, *pr1, *pr2;
|
||||||
|
|
||||||
expression (&pr);
|
expression_and_evaluate (&pr);
|
||||||
if (pr.X_op == O_register
|
if (pr.X_op == O_register
|
||||||
&& pr.X_add_number >= REG_P
|
&& pr.X_add_number >= REG_P
|
||||||
&& pr.X_add_number <= REG_P + 63)
|
&& pr.X_add_number <= REG_P + 63)
|
||||||
@ -6181,7 +6181,7 @@ parse_operand (e, more)
|
|||||||
memset (e, 0, sizeof (*e));
|
memset (e, 0, sizeof (*e));
|
||||||
e->X_op = O_absent;
|
e->X_op = O_absent;
|
||||||
SKIP_WHITESPACE ();
|
SKIP_WHITESPACE ();
|
||||||
expression (e);
|
expression_and_evaluate (e);
|
||||||
sep = *input_line_pointer;
|
sep = *input_line_pointer;
|
||||||
if (more && (sep == ',' || sep == more))
|
if (more && (sep == ',' || sep == more))
|
||||||
++input_line_pointer;
|
++input_line_pointer;
|
||||||
@ -7822,7 +7822,7 @@ ia64_unrecognized_line (ch)
|
|||||||
switch (ch)
|
switch (ch)
|
||||||
{
|
{
|
||||||
case '(':
|
case '(':
|
||||||
expression (&md.qp);
|
expression_and_evaluate (&md.qp);
|
||||||
if (*input_line_pointer++ != ')')
|
if (*input_line_pointer++ != ')')
|
||||||
{
|
{
|
||||||
as_bad ("Expected ')'");
|
as_bad ("Expected ')'");
|
||||||
@ -11022,7 +11022,7 @@ md_operand (e)
|
|||||||
{
|
{
|
||||||
case '[':
|
case '[':
|
||||||
++input_line_pointer;
|
++input_line_pointer;
|
||||||
expression (e);
|
expression_and_evaluate (e);
|
||||||
if (*input_line_pointer != ']')
|
if (*input_line_pointer != ']')
|
||||||
{
|
{
|
||||||
as_bad ("Closing bracket missing");
|
as_bad ("Closing bracket missing");
|
||||||
|
@ -1,3 +1,8 @@
|
|||||||
|
2005-10-12 Jan Beulich <jbeulich@novell.com>
|
||||||
|
|
||||||
|
* gas/ia64/forward.[sd]: New.
|
||||||
|
* gas/ia64/ia64.exp: Run new test.
|
||||||
|
|
||||||
2005-10-11 Jan Beulich <jbeulich@novell.com>
|
2005-10-11 Jan Beulich <jbeulich@novell.com>
|
||||||
|
|
||||||
* gas/all/cond.s: Add test for resolution of fully resolvable
|
* gas/all/cond.s: Add test for resolution of fully resolvable
|
||||||
|
15
gas/testsuite/gas/ia64/forward.d
Normal file
15
gas/testsuite/gas/ia64/forward.d
Normal file
@ -0,0 +1,15 @@
|
|||||||
|
# as: -xexplicit
|
||||||
|
# objdump: -d
|
||||||
|
# name ia64 forward references
|
||||||
|
|
||||||
|
.*: +file format .*
|
||||||
|
|
||||||
|
Disassembly of section \.text:
|
||||||
|
|
||||||
|
0+ <_start>:
|
||||||
|
[[:space:]]*[[:xdigit:]]*:[[:space:][:xdigit:]]+\[MIB\][[:space:]]+alloc r31=ar.pfs,12,6,8
|
||||||
|
[[:space:]]*[[:xdigit:]]*:[[:space:][:xdigit:]]+[[:space:]]+dep.z r2=1,5,7
|
||||||
|
[[:space:]]*[[:xdigit:]]*:[[:space:][:xdigit:]]+\(p0?6\)[[:space:]]+br.cond.sptk.few 0+ <_start>;;
|
||||||
|
[[:space:]]*[[:xdigit:]]*:[[:space:][:xdigit:]]+\[MIB\][[:space:]]+alloc r31=ar.pfs,0,0,0
|
||||||
|
[[:space:]]*[[:xdigit:]]*:[[:space:][:xdigit:]]+[[:space:]]+dep.z r3=-1,1,1
|
||||||
|
[[:space:]]*[[:xdigit:]]*:[[:space:][:xdigit:]]+\(p0?7\)[[:space:]]+br(\.cond)?\.sptk(\.few)? [[:xdigit:]]+0 <.*>;;
|
27
gas/testsuite/gas/ia64/forward.s
Normal file
27
gas/testsuite/gas/ia64/forward.s
Normal file
@ -0,0 +1,27 @@
|
|||||||
|
two == 2*one
|
||||||
|
one = 1
|
||||||
|
three == 3*one
|
||||||
|
four = 4*one
|
||||||
|
|
||||||
|
RA == rA
|
||||||
|
rA = r2
|
||||||
|
|
||||||
|
PA == pA
|
||||||
|
pA = p6
|
||||||
|
|
||||||
|
.text
|
||||||
|
_start:
|
||||||
|
alloc r31 = one + 1, two + 2, three + 3, four + 4
|
||||||
|
dep.z RA = one, two + 3, three + 4
|
||||||
|
(PA) br.sptk _start
|
||||||
|
;;
|
||||||
|
|
||||||
|
one = -1
|
||||||
|
rA = r3
|
||||||
|
pA = p7
|
||||||
|
|
||||||
|
.L1:
|
||||||
|
alloc r31 = one + 1, two + 2, three + 3, four - 4
|
||||||
|
dep.z RA = one, two + 3, three + 4
|
||||||
|
(PA) br.sptk .L1
|
||||||
|
;;
|
@ -78,6 +78,7 @@ if [istarget "ia64-*"] then {
|
|||||||
|
|
||||||
run_list_test "alloc" ""
|
run_list_test "alloc" ""
|
||||||
run_dump_test "bundling"
|
run_dump_test "bundling"
|
||||||
|
run_dump_test "forward"
|
||||||
run_list_test "label" ""
|
run_list_test "label" ""
|
||||||
run_list_test "last" ""
|
run_list_test "last" ""
|
||||||
run_list_test "no-fit" ""
|
run_list_test "no-fit" ""
|
||||||
|
Reference in New Issue
Block a user