comparison gcc/config/h8300/predicates.md @ 63:b7f97abdc517 gcc-4.6-20100522

update gcc from gcc-4.5.0 to gcc-4.6
author ryoma <e075725@ie.u-ryukyu.ac.jp>
date Mon, 24 May 2010 12:47:05 +0900
parents a06113de4d67
children f6334be47118
comparison
equal deleted inserted replaced
56:3c8a44c06a95 63:b7f97abdc517
324 (define_predicate "bit_operand" 324 (define_predicate "bit_operand"
325 (match_code "reg,subreg,mem") 325 (match_code "reg,subreg,mem")
326 { 326 {
327 /* We can accept any nonimmediate operand, except that MEM operands must 327 /* We can accept any nonimmediate operand, except that MEM operands must
328 be limited to those that use addresses valid for the 'U' constraint. */ 328 be limited to those that use addresses valid for the 'U' constraint. */
329 if (!nonimmediate_operand (op, mode)) 329 if (!nonimmediate_operand (op, mode) && !OK_FOR_U (op))
330 return 0; 330 return 0;
331 331
332 /* H8SX accepts pretty much anything here. */ 332 /* H8SX accepts pretty much anything here. */
333 if (TARGET_H8300SX) 333 if (TARGET_H8300SX)
334 return 1; 334 return 1;
354 { 354 {
355 return (GET_CODE (op) == MEM 355 return (GET_CODE (op) == MEM
356 && OK_FOR_U (op)); 356 && OK_FOR_U (op));
357 }) 357 })
358 358
359 ;; Return nonzero if OP is indirect register or constant memory
360 ;; suitable for bit manipulation insns.
361
362 (define_predicate "bit_register_indirect_operand"
363 (match_code "mem")
364 {
365 return (GET_CODE (op) == MEM
366 && (GET_CODE (XEXP (op, 0)) == REG
367 || GET_CODE (XEXP (op, 0)) == CONST_INT));
368 })
369
359 ;; Return nonzero if X is a stack pointer. 370 ;; Return nonzero if X is a stack pointer.
360 371
361 (define_predicate "stack_pointer_operand" 372 (define_predicate "stack_pointer_operand"
362 (match_code "reg") 373 (match_code "reg")
363 { 374 {