OpenCores
URL https://opencores.org/ocsvn/openrisc/openrisc/trunk

Subversion Repositories openrisc

[/] [openrisc/] [trunk/] [gnu-stable/] [binutils-2.20.1/] [gas/] [testsuite/] [gas/] [score/] [arith_32.s] - Rev 818

Compare with Previous | Blame | View Log

/*
 * tests for arithmetic instruction relaxation 
 *
 * Author: libin
 */
 
.include "relaxation_macro.h"
 
.macro _arith_op_pattern insn insn1
  insn_32 "\insn r0, r0, r15"
 
  tran_16_32 "\insn! r0, r15", "\insn r0, r0, r15"
 
  /* shouldn't alter */
  .set r1
  insn_32 "\insn1  r0,  r0,  r15"
  insn_32 "\insn   r0,  r0,  r16"
  insn_32 "\insn   r16, r16, r0"
  insn_32 "\insn   r16, r16, r17"
  insn_32 "\insn   r0,  r1,  r2"
.endm
 
.text
/* add rD,rA,rB -> add! rD,rA */
_arith_op_pattern "add", "add.c"
 
/* sub rD,rA,rB -> sub rD,rA */
_arith_op_pattern "sub", "sub.c"
 
/* addi rD,SImm16 -> addi! rD,SImm6 */
insn_32 "addi r0,  -32"
insn_32 "addi r0,  31"
insn_32 "addi r15, -32"
insn_32 "addi r15, 31"
 
tran_16_32 "addi! r0,-32", "addi r0,-32"
 
/* shouldn't alter */
insn_32 "addi.c r0,  -32"
insn_32 "addi   r0,  -33"
insn_32 "addi   r0,  32"
insn_32 "addi   r16, -32"
insn_32 "addi   r16, 31"
 

Compare with Previous | Blame | View Log

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.