powerpc: Use extended mnemonic for load immediate
authorDoug Nazar <nazard@nazar.ca>
Wed, 28 Aug 2019 14:30:12 +0000 (10:30 -0400)
committerDoug Nazar <nazard@nazar.ca>
Sun, 8 Sep 2019 22:13:48 +0000 (18:13 -0400)
orc/orcpowerpc.c

index ad6cccd..e054d07 100644 (file)
@@ -100,9 +100,14 @@ powerpc_emit_addi (OrcCompiler *compiler, int regd, int rega, int imm)
 {
   unsigned int insn;
 
-  ORC_ASM_CODE(compiler,"  addi %s, %s, %d\n",
-      powerpc_get_regname(regd),
-      powerpc_get_regname(rega), imm);
+  if (rega == 0) {
+    ORC_ASM_CODE(compiler, "  li %s, %d\n",
+        powerpc_get_regname(regd), imm);
+  } else {
+    ORC_ASM_CODE(compiler,"  addi %s, %s, %d\n",
+        powerpc_get_regname(regd),
+        powerpc_get_regname(rega), imm);
+  }
   insn = (14<<26) | (powerpc_regnum (regd)<<21) | (powerpc_regnum (rega)<<16);
   insn |= imm&0xffff;