diff options
author | Luis Fernandez <Luis.Fernandez@ibm.com> | 2019-04-26 13:23:19 -0500 |
---|---|---|
committer | Daniel M. Crowell <dcrowell@us.ibm.com> | 2019-05-02 10:52:37 -0500 |
commit | 49d81ec6a770e74cd2a41acb15bcc4efc3434261 (patch) | |
tree | ddd7d55ec681393480b4b317ba229798b8dce1b4 /src/include | |
parent | a6b70d6c06d2b261bbb0a00522088fd5c0d8f395 (diff) | |
download | talos-hostboot-49d81ec6a770e74cd2a41acb15bcc4efc3434261.tar.gz talos-hostboot-49d81ec6a770e74cd2a41acb15bcc4efc3434261.zip |
General Improvement: Get HB standalone + op-build working with GCC8
Fix issue where when compiling with GCC 8, illegal instruction of value
0x0 is placed instead of the expected "blr" instrusction.
Change-Id: I2ff28d5549689d541ea24d102230cbfc22cbbbff
RTC: 163075
Reviewed-on: http://rchgit01.rchland.ibm.com/gerrit1/76650
Tested-by: Jenkins Server <pfd-jenkins+hostboot@us.ibm.com>
Reviewed-by: Nicholas E. Bofferding <bofferdn@us.ibm.com>
Tested-by: Jenkins OP Build CI <op-jenkins+hostboot@us.ibm.com>
Tested-by: FSP CI Jenkins <fsp-CI-jenkins+hostboot@us.ibm.com>
Tested-by: Jenkins OP HW <op-hw-jenkins+hostboot@us.ibm.com>
Reviewed-by: Zachary Clark <zach@ibm.com>
Reviewed-by: Daniel M. Crowell <dcrowell@us.ibm.com>
Diffstat (limited to 'src/include')
-rw-r--r-- | src/include/arch/ppc.H | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/src/include/arch/ppc.H b/src/include/arch/ppc.H index 4d1762db7..81c49eb4f 100644 --- a/src/include/arch/ppc.H +++ b/src/include/arch/ppc.H @@ -457,10 +457,12 @@ inline void MAGIC_INSTRUCTION(int _n) { register int n = _n; isync(); - asm volatile("rlwimi %0,%0,0,%1,%2" \ - :: "i" (((n) >> 8) & 0x1f), \ - "i" (((n) >> 4) & 0xf), \ - "i" ((((n) >> 0) & 0xf) | 16)); \ + long register r3 asm("r3"); + asm volatile("rlwimi %1,%1,0,%2,%3" \ + : "=r"(r3) : "i" (((n) >> 8) & 0x1f), \ + "i" (((n) >> 4) & 0xf), \ + "i" ((((n) >> 0) & 0xf) | 16), \ + "r"(r3)); \ } // Simics components that we can raise log levels for |