ia64.md (119256) | ia64.md (122180) |
---|---|
1;; IA-64 Machine description template 2;; Copyright (C) 1999, 2000, 2001, 2002 Free Software Foundation, Inc. 3;; Contributed by James E. Wilson <wilson@cygnus.com> and 4;; David Mosberger <davidm@hpl.hp.com>. 5 6;; This file is part of GNU CC. 7 8;; GNU CC is free software; you can redistribute it and/or modify --- 59 unchanged lines hidden (view full) --- 68 (UNSPEC_MF 18) 69 (UNSPEC_CMPXCHG_ACQ 19) 70 (UNSPEC_FETCHADD_ACQ 20) 71 (UNSPEC_BSP_VALUE 21) 72 (UNSPEC_FLUSHRS 22) 73 (UNSPEC_BUNDLE_SELECTOR 23) 74 (UNSPEC_ADDP4 24) 75 (UNSPEC_PROLOGUE_USE 25) | 1;; IA-64 Machine description template 2;; Copyright (C) 1999, 2000, 2001, 2002 Free Software Foundation, Inc. 3;; Contributed by James E. Wilson <wilson@cygnus.com> and 4;; David Mosberger <davidm@hpl.hp.com>. 5 6;; This file is part of GNU CC. 7 8;; GNU CC is free software; you can redistribute it and/or modify --- 59 unchanged lines hidden (view full) --- 68 (UNSPEC_MF 18) 69 (UNSPEC_CMPXCHG_ACQ 19) 70 (UNSPEC_FETCHADD_ACQ 20) 71 (UNSPEC_BSP_VALUE 21) 72 (UNSPEC_FLUSHRS 22) 73 (UNSPEC_BUNDLE_SELECTOR 23) 74 (UNSPEC_ADDP4 24) 75 (UNSPEC_PROLOGUE_USE 25) |
76 (UNSPEC_RET_ADDR 26) |
|
76 ]) 77 78(define_constants 79 [(UNSPECV_ALLOC 0) 80 (UNSPECV_BLOCKAGE 1) 81 (UNSPECV_INSN_GROUP_BARRIER 2) 82 (UNSPECV_BREAK 3) 83 (UNSPECV_SET_BSP 4) --- 327 unchanged lines hidden (view full) --- 411{ 412 rtx scratch = operands[2]; 413 if (!reload_completed) 414 scratch = gen_reg_rtx (Pmode); 415 ia64_expand_load_address (operands[0], operands[1], scratch); 416 DONE; 417}) 418 | 77 ]) 78 79(define_constants 80 [(UNSPECV_ALLOC 0) 81 (UNSPECV_BLOCKAGE 1) 82 (UNSPECV_INSN_GROUP_BARRIER 2) 83 (UNSPECV_BREAK 3) 84 (UNSPECV_SET_BSP 4) --- 327 unchanged lines hidden (view full) --- 412{ 413 rtx scratch = operands[2]; 414 if (!reload_completed) 415 scratch = gen_reg_rtx (Pmode); 416 ia64_expand_load_address (operands[0], operands[1], scratch); 417 DONE; 418}) 419 |
420;; This is used as a placeholder for the return address during early 421;; compilation. We won't know where we've placed this until during 422;; reload, at which point it can wind up in b0, a general register, 423;; or memory. The only safe destination under these conditions is a 424;; general register. 425 426(define_insn_and_split "*movdi_ret_addr" 427 [(set (match_operand:DI 0 "register_operand" "=r") 428 (unspec:DI [(const_int 0)] UNSPEC_RET_ADDR))] 429 "" 430 "#" 431 "reload_completed" 432 [(const_int 0)] 433{ 434 ia64_split_return_addr_rtx (operands[0]); 435 DONE; 436} 437 [(set_attr "itanium_class" "ialu")]) 438 |
|
419(define_insn "*movdi_internal" 420 [(set (match_operand:DI 0 "destination_operand" 421 "=r,r,r,r, m, r,*f,*f,*f, Q, r,*b, r,*e, r,*d, r,*c") 422 (match_operand:DI 1 "move_operand" 423 "rO,J,i,m,rO,*f,rO,*f, Q,*f,*b,rO,*e,rK,*d,rK,*c,rO"))] 424 "ia64_move_ok (operands[0], operands[1])" 425{ 426 static const char * const alt[] = { --- 5110 unchanged lines hidden --- | 439(define_insn "*movdi_internal" 440 [(set (match_operand:DI 0 "destination_operand" 441 "=r,r,r,r, m, r,*f,*f,*f, Q, r,*b, r,*e, r,*d, r,*c") 442 (match_operand:DI 1 "move_operand" 443 "rO,J,i,m,rO,*f,rO,*f, Q,*f,*b,rO,*e,rK,*d,rK,*c,rO"))] 444 "ia64_move_ok (operands[0], operands[1])" 445{ 446 static const char * const alt[] = { --- 5110 unchanged lines hidden --- |