Lines 441-448
Link Here
|
441 |
;; pessimizes things a tad. |
441 |
;; pessimizes things a tad. |
442 |
|
442 |
|
443 |
(define_special_predicate "aligned_memory_operand" |
443 |
(define_special_predicate "aligned_memory_operand" |
444 |
(ior (match_test "op = resolve_reload_operand (op), 0") |
444 |
(match_code "mem") |
445 |
(match_code "mem")) |
|
|
446 |
{ |
445 |
{ |
447 |
rtx base; |
446 |
rtx base; |
448 |
int offset; |
447 |
int offset; |
Lines 486-493
Link Here
|
486 |
;; Similar, but return 1 if OP is a MEM which is not alignable. |
485 |
;; Similar, but return 1 if OP is a MEM which is not alignable. |
487 |
|
486 |
|
488 |
(define_special_predicate "unaligned_memory_operand" |
487 |
(define_special_predicate "unaligned_memory_operand" |
489 |
(ior (match_test "op = resolve_reload_operand (op), 0") |
488 |
(match_code "mem") |
490 |
(match_code "mem")) |
|
|
491 |
{ |
489 |
{ |
492 |
rtx base; |
490 |
rtx base; |
493 |
int offset; |
491 |
int offset; |
Lines 549-562
Link Here
|
549 |
return false; |
547 |
return false; |
550 |
}) |
548 |
}) |
551 |
|
549 |
|
552 |
;; Return 1 is OP is a memory location that is not a reference |
|
|
553 |
;; (using an AND) to an unaligned location. Take into account |
554 |
;; what reload will do. |
555 |
(define_special_predicate "normal_memory_operand" |
556 |
(ior (match_test "op = resolve_reload_operand (op), 0") |
557 |
(and (match_code "mem") |
558 |
(match_test "GET_CODE (XEXP (op, 0)) != AND")))) |
559 |
|
560 |
;; Returns 1 if OP is not an eliminable register. |
550 |
;; Returns 1 if OP is not an eliminable register. |
561 |
;; |
551 |
;; |
562 |
;; This exists to cure a pathological failure in the s8addq (et al) patterns, |
552 |
;; This exists to cure a pathological failure in the s8addq (et al) patterns, |