emit_cmp_insn in alpha
Hilmi Ozdoganoglu
cyprian@purdue.edu
Sun May 11 05:31:00 GMT 2003
when I change the md file and remove the * next to setcc_internal I get
compile errors like this:
cc: Error: ../../src/gcc-3.0.3/gcc/cp/decl.c, line 528: In this statement,
"(cfun&&((struct cp_language_function
...)(cfun->language))->bindings?((struct cp_language_function
...)(cfun->language))->bindings:scope_chain->bindings)" is not an lvalue,
but occurs in a context that requires one. (needlvalue)
current_binding_level = newlevel;
--^
cc: Error: ../../src/gcc-3.0.3/gcc/cp/decl.c, line 584: In this statement,
"(cfun&&((struct cp_language_function
...)(cfun->language))->bindings?((struct cp_language_function
...)(cfun->language))->bindings:scope_chain->bindings)" is not an lvalue,
but occurs in a context that requires one. (needlvalue)
current_binding_level = current_binding_level->level_chain;
----^
cc: Error: ../../src/gcc-3.0.3/gcc/cp/decl.c, line 599: In this statement,
"(cfun&&((struct cp_language_function
...)(cfun->language))->bindings?((struct cp_language_function
...)(cfun->language))->bindings:scope_chain->bindings)" is not an lvalue,
but occurs in a context that requires one. (needlvalue)
current_binding_level = class_binding_level;
----^
cc: Error: ../../src/gcc-3.0.3/gcc/cp/decl.c, line 621: In this statement,
"(cfun&&((struct cp_language_function
...)(cfun->language))->bindings?((struct cp_language_function
...)(cfun->language))->bindings:scope_chain->bindings)" is not an lvalue,
but occurs in a context that requires one. (needlvalue)
current_binding_level = current_binding_level->level_chain;
--^
cc: Error: ../../src/gcc-3.0.3/gcc/cp/decl.c, line 634: In this statement,
"(cfun&&((struct cp_language_function
...)(cfun->language))->bindings?((struct cp_language_function
...)(cfun->language))->bindings:scope_chain->bindings)" is not an lvalue,
but occurs in a context that requires one. (needlvalue)
current_binding_level = b;
--^
cc: Error: ../../src/gcc-3.0.3/gcc/cp/decl.c, line 4294: In this
statement, "(cfun&&((struct cp_language_function
...)(cfun->language))->bindings?((struct cp_language_function
...)(cfun->language))->bindings:scope_chain->bindings)" is not an lvalue,
but occurs in a context that requires one. (needlvalue)
current_binding_level = level;
------^
cc: Error: ../../src/gcc-3.0.3/gcc/cp/decl.c, line 4296: In this
statement, "(cfun&&((struct cp_language_function
...)(cfun->language))->bindings?((struct cp_language_function
...)(cfun->language))->bindings:scope_chain->bindings)" is not an lvalue,
but occurs in a context that requires one. (needlvalue)
current_binding_level = b;
------^
cc: Error: ../../src/gcc-3.0.3/gcc/cp/decl.c, line 6405: In this
statement, "(cfun&&((struct cp_language_function
...)(cfun->language))->bindings?((struct cp_language_function
...)(cfun->language))->bindings:scope_chain->bindings)" is not an lvalue,
but occurs in a context that requires one. (needlvalue)
current_binding_level = NULL_BINDING_LEVEL;
--^
cc: Error: ../../src/gcc-3.0.3/gcc/cp/decl.c, line 9939: In this
statement, "(cfun&&((struct cp_language_function
...)(cfun->language))->bindings?((struct cp_language_function
...)(cfun->language))->bindings:scope_chain->bindings)" is not an lvalue,
but occurs in a context that requires one. (needlvalue)
current_binding_level = b->level_chain;
------^
cc: Error: ../../src/gcc-3.0.3/gcc/cp/decl.c, line 9942: In this
statement, "(cfun&&((struct cp_language_function
...)(cfun->language))->bindings?((struct cp_language_function
...)(cfun->language))->bindings:scope_chain->bindings)" is not an lvalue,
but occurs in a context that requires one. (needlvalue)
current_binding_level = b;
------^
cc: Error: ../../src/gcc-3.0.3/gcc/cp/decl.c, line 13508: In this
statement, "(cfun&&((struct cp_language_function
...)(cfun->language))->bindings?((struct cp_language_function
...)(cfun->language))->bindings:scope_chain->bindings)" is not an lvalue,
but occurs in a context that requires one. (needlvalue)
current_binding_level = bl;
--^
gmake[1]: *** [cp/decl.o] Error 1
any ideas?
-hilmi
... In order to get a compare, you will need to directly call the md
... patterns that emit compare instructions, e.g. setcc_internal. You will
... need to modify the md file to delete the * so that you can actually call
... these patterns. Then you do something like
... emit_insn (gen_setcc_internal (operands...));
... emit_insn (gen_bcc_normal (operands...));
... It isn't normal to do this sort of thing. Normally, the epilogue only
... emits move instructions. Thus there is no easy way to do it.
More information about the Gcc
mailing list