X-Git-Url: http://nsz.repo.hu/git/?a=blobdiff_plain;f=ir%2Fbe%2Fia32%2Fia32_common_transform.c;h=5b8247db09013618f6e3ae97ba45ac1542152063;hb=9f90e73178e695062ad259293c918d6bba130cd8;hp=a032f145eccf1fdb2adb5dbe0b025c3fc35833ee;hpb=c3ce39736db79adc61bb83df2b0afcc9f0c807df;p=libfirm diff --git a/ir/be/ia32/ia32_common_transform.c b/ir/be/ia32/ia32_common_transform.c index a032f145e..5b8247db0 100644 --- a/ir/be/ia32/ia32_common_transform.c +++ b/ir/be/ia32/ia32_common_transform.c @@ -413,6 +413,8 @@ static inline ir_node *get_new_node(ir_node *node) #endif } +static arch_register_req_t const *ia32_make_register_req(constraint_t const *constraint, int n_outs, arch_register_req_t const **out_reqs, int pos); + ir_node *ia32_gen_ASM(ir_node *node) { ir_node *block = get_nodes_block(node); @@ -763,9 +765,7 @@ ir_node *ia32_gen_Unknown(ir_node *node) return res; } -const arch_register_req_t *ia32_make_register_req( - const constraint_t *constraint, int n_outs, - const arch_register_req_t **out_reqs, int pos) +static arch_register_req_t const *ia32_make_register_req(constraint_t const *const constraint, int const n_outs, arch_register_req_t const **const out_reqs, int const pos) { struct obstack *obst = get_irg_obstack(current_ir_graph); int same_as = constraint->same_as; @@ -808,14 +808,12 @@ const arch_register_req_t *ia32_make_register_req( req->type = arch_register_req_type_limited; *limited_ptr = constraint->allowed_registers; req->limited = limited_ptr; + req->cls = constraint->cls; + req->width = 1; + return req; } else { - req = OALLOCZ(obst, arch_register_req_t); - req->type = arch_register_req_type_normal; + return constraint->cls->class_req; } - req->cls = constraint->cls; - req->width = 1; - - return req; } const arch_register_req_t *ia32_parse_clobber(const char *clobber)