Displaying 20 results from an estimated 23 matches for "mfcr".
Did you mean:
mfc
2012 Jun 10
2
[LLVMdev] anti-dependency breaking and mask/shift dependencies
On PowerPC (at least versions which predate the mfocrf instruction),
while there are multiple independent condition registers, the only way
to move those registers into a general-purpose register is to use mfcr,
which transfers all of the (concatenated) condition registers into one
general purpose register, followed by a mask/shift operation to extract
the desired pieces.
I would like to know if there is any way to model this which is
compatible with using anti-dependency breaking on the associated
condi...
2012 Jun 10
0
[LLVMdev] anti-dependency breaking and mask/shift dependencies
On Jun 9, 2012, at 10:12 PM, Hal Finkel wrote:
> On PowerPC (at least versions which predate the mfocrf instruction),
> while there are multiple independent condition registers, the only way
> to move those registers into a general-purpose register is to use mfcr,
> which transfers all of the (concatenated) condition registers into one
> general purpose register, followed by a mask/shift operation to extract
> the desired pieces.
>
> I would like to know if there is any way to model this which is
> compatible with using anti-dependency br...
2006 Nov 24
1
mfcr/R2
Hello!
I'm tryuing to bring up an R2 connection but eventhough I've followed
the guidelines in: http://zarzamora.com.mx/asterisk/17 something seems
to be missing.
When an incomming call is generated I get:
Nov 24 06:01:17 WARNING[-197416016]: chan_unicall.c:612 unicall_report:
MFC/R2 UniCall/24 <- 0001
[1/
1/Idle
/Idle ]
Nov 24 06:01:17 WARNING[-197416016]:
2012 Jun 11
2
[LLVMdev] anti-dependency breaking and mask/shift dependencies
...On Jun 9, 2012, at 10:12 PM, Hal Finkel wrote:
>
> > On PowerPC (at least versions which predate the mfocrf instruction),
> > while there are multiple independent condition registers, the only
> > way to move those registers into a general-purpose register is to
> > use mfcr, which transfers all of the (concatenated) condition
> > registers into one general purpose register, followed by a
> > mask/shift operation to extract the desired pieces.
> >
> > I would like to know if there is any way to model this which is
> > compatible with usin...
2004 Sep 14
1
Re: got pointer wrong in shared klibc binary
....S
--- klibc-0.173/klibc/arch/ppc64/setjmp.S 2003-12-13 14:09:13.000000000 +1030
+++ klibc/klibc/arch/ppc64/setjmp.S 2004-09-15 12:28:42.160328339 +0930
@@ -17,13 +16,33 @@ setjmp:
.globl setjmp
.globl .setjmp
.setjmp:
- mflr %r11 /* save return address */
- mfcr %r12 /* save condition register */
- mr %r10,%r1 /* save stack pointer */
- mr %r9,%r2 /* save GPR2 (not needed) */
- stmw %r9,0(%r3) /* save r9..r31 */
- li %r3,0 /* in...
2008 Jul 10
2
[LLVMdev] Implementing llvm.atomic.cmp.swap.i32 on PowerPC
...cho";
- case PPCISD::MTCTR: return "PPCISD::MTCTR";
- case PPCISD::BCTRL_Macho: return "PPCISD::BCTRL_Macho";
- case PPCISD::BCTRL_ELF: return "PPCISD::BCTRL_ELF";
- case PPCISD::RET_FLAG: return "PPCISD::RET_FLAG";
- case PPCISD::MFCR: return "PPCISD::MFCR";
- case PPCISD::VCMP: return "PPCISD::VCMP";
- case PPCISD::VCMPo: return "PPCISD::VCMPo";
- case PPCISD::LBRX: return "PPCISD::LBRX";
- case PPCISD::STBRX: return "PPCISD::STBRX"...
2008 Jul 08
0
[LLVMdev] Implementing llvm.atomic.cmp.swap.i32 on PowerPC
PPCTargetLowering::EmitInstrWithCustomInserter has a reference
to the current MachineFunction for other purposes. Can you use
MachineFunction::getRegInfo instead?
Dan
On Jul 8, 2008, at 1:56 PM, Gary Benson wrote:
> Would it be acceptable to change MachineInstr::getRegInfo from private
> to public so I can use it from
> PPCTargetLowering::EmitInstrWithCustomInserter?
>
>
2008 Jul 11
2
[LLVMdev] Implementing llvm.atomic.cmp.swap.i32 on PowerPC
...cho";
- case PPCISD::MTCTR: return "PPCISD::MTCTR";
- case PPCISD::BCTRL_Macho: return "PPCISD::BCTRL_Macho";
- case PPCISD::BCTRL_ELF: return "PPCISD::BCTRL_ELF";
- case PPCISD::RET_FLAG: return "PPCISD::RET_FLAG";
- case PPCISD::MFCR: return "PPCISD::MFCR";
- case PPCISD::VCMP: return "PPCISD::VCMP";
- case PPCISD::VCMPo: return "PPCISD::VCMPo";
- case PPCISD::LBRX: return "PPCISD::LBRX";
- case PPCISD::STBRX: return "PPCISD::STBRX"...
2008 Jul 11
0
[LLVMdev] Implementing llvm.atomic.cmp.swap.i32 on PowerPC
Hi Gary,
This does not patch cleanly for me (PPCISelLowering.cpp). Can you
prepare a updated patch?
Thanks,
Evan
On Jul 10, 2008, at 11:45 AM, Gary Benson wrote:
> Cool, that worked. New patch attached...
>
> Cheers,
> Gary
>
> Evan Cheng wrote:
>> Just cast both values to const TargetRegisterClass*.
>>
>> Evan
>>
>> On Jul 10, 2008, at 7:36
2008 Jul 10
0
[LLVMdev] Implementing llvm.atomic.cmp.swap.i32 on PowerPC
Just cast both values to const TargetRegisterClass*.
Evan
On Jul 10, 2008, at 7:36 AM, Gary Benson wrote:
> Evan Cheng wrote:
>> How about?
>>
>> const TargetRegisterClass *RC = is64Bit ? &PPC:GPRCRegClass :
>> &PPC:G8RCRegClass;
>> unsigned TmpReg = RegInfo.createVirtualRegister(RC);
>
> I tried something like that yesterday:
>
> const
2008 Jul 10
2
[LLVMdev] Implementing llvm.atomic.cmp.swap.i32 on PowerPC
Evan Cheng wrote:
> How about?
>
> const TargetRegisterClass *RC = is64Bit ? &PPC:GPRCRegClass :
> &PPC:G8RCRegClass;
> unsigned TmpReg = RegInfo.createVirtualRegister(RC);
I tried something like that yesterday:
const TargetRegisterClass *RC =
is64bit ? &PPC::GPRCRegClass : &PPC::G8RCRegClass;
but I kept getting this error no matter how I arranged it:
2008 Jun 30
0
[LLVMdev] Implementing llvm.atomic.cmp.swap.i32 on PowerPC
You need to insert new basic blocks and update CFG to accomplish this.
There is a hackish way to do this right now. Add a pseudo instruction
to represent this operation and mark it usesCustomDAGSchedInserter.
This means the intrinsic is mapped to a single (pseudo) node. But it
is then expanded into instructions that can span multiple basic
blocks. See
2008 Jul 09
2
[LLVMdev] Implementing llvm.atomic.cmp.swap.i32 on PowerPC
...cho";
- case PPCISD::MTCTR: return "PPCISD::MTCTR";
- case PPCISD::BCTRL_Macho: return "PPCISD::BCTRL_Macho";
- case PPCISD::BCTRL_ELF: return "PPCISD::BCTRL_ELF";
- case PPCISD::RET_FLAG: return "PPCISD::RET_FLAG";
- case PPCISD::MFCR: return "PPCISD::MFCR";
- case PPCISD::VCMP: return "PPCISD::VCMP";
- case PPCISD::VCMPo: return "PPCISD::VCMPo";
- case PPCISD::LBRX: return "PPCISD::LBRX";
- case PPCISD::STBRX: return "PPCISD::STBRX"...
2008 Jul 08
2
[LLVMdev] Implementing llvm.atomic.cmp.swap.i32 on PowerPC
Would it be acceptable to change MachineInstr::getRegInfo from private
to public so I can use it from PPCTargetLowering::EmitInstrWithCustomInserter?
Cheers,
Gary
Evan Cheng wrote:
> Look for createVirtualRegister. These are examples in
> PPCISelLowering.cpp.
>
> Evan
> On Jul 8, 2008, at 8:24 AM, Gary Benson wrote:
>
> > Hi Evan,
> >
> > Evan Cheng wrote:
2008 Jun 30
2
[LLVMdev] Implementing llvm.atomic.cmp.swap.i32 on PowerPC
Chris Lattner wrote:
> On Jun 27, 2008, at 8:27 AM, Gary Benson wrote:
> > def CMP_UNRESw : Pseudo<(outs), (ins GPRC:$rA, GPRC:$rB, i32imm:
> > $label),
> > "cmpw $rA, $rB\n\tbne- La${label}_exit",
> > [(PPCcmp_unres GPRC:$rA, GPRC:$rB, imm:
> > $label)]>;
> > }
> >
> > ...and
2008 Jul 02
2
[LLVMdev] Implementing llvm.atomic.cmp.swap.i32 on PowerPC
...cho";
- case PPCISD::MTCTR: return "PPCISD::MTCTR";
- case PPCISD::BCTRL_Macho: return "PPCISD::BCTRL_Macho";
- case PPCISD::BCTRL_ELF: return "PPCISD::BCTRL_ELF";
- case PPCISD::RET_FLAG: return "PPCISD::RET_FLAG";
- case PPCISD::MFCR: return "PPCISD::MFCR";
- case PPCISD::VCMP: return "PPCISD::VCMP";
- case PPCISD::VCMPo: return "PPCISD::VCMPo";
- case PPCISD::LBRX: return "PPCISD::LBRX";
- case PPCISD::STBRX: return "PPCISD::STBRX"...
2006 Jun 26
0
[klibc 31/43] ppc support for klibc
...(arg6); \
+ __sc_0 = __NR_##name; \
+ __asm__ __volatile__ \
+ ("sc \n\t" \
+ "mfcr %1 " \
+ : "+r" (__sc_3), \
+ "+r" (__sc_0), \
+ "+r" (__sc_4), \
+ "+r" (__sc_5),...
2006 Jun 26
0
[klibc 32/43] ppc64 support for klibc
...(arg6); \
+ __sc_0 = __NR_##name; \
+ __asm__ __volatile__ \
+ ("sc \n\t" \
+ "mfcr %1 " \
+ : "=&r" (__sc_3), "=&r" (__sc_0) \
+ : "0" (__sc_3), "1" (__sc_0), \
+ "r" (__sc_4),...
2003 Dec 12
2
[PATCH] ppc64 support
...file in NetBSD
+#
+
+ .text
+ .align 4
+
+ .section ".opd","aw"
+setjmp:
+ .quad .setjmp,.TOC.@tocbase,0
+ .previous
+ .size setjmp,24
+ .type .setjmp,@function
+ .globl setjmp
+ .globl .setjmp
+.setjmp:
+ mflr %r11 /* save return address */
+ mfcr %r12 /* save condition register */
+ mr %r10,%r1 /* save stack pointer */
+ mr %r9,%r2 /* save GPR2 (not needed) */
+ stmw %r9,0(%r3) /* save r9..r31 */
+ li %r3,0 /* in...
2013 Dec 03
0
[klibc:master] ppc64: Add ppc64le support
...jmp:
+#else
.section ".opd","aw"
+ .balign 8
setjmp:
- .quad .setjmp,.TOC. at tocbase,0
+ .quad .setjmp, .TOC. at tocbase, 0
.previous
- .size setjmp,24
.type .setjmp, at function
- .globl setjmp
.globl .setjmp
.setjmp:
+#endif
mflr %r11 /* save return address */
mfcr %r12 /* save condition register */
std %r2,0(%r3) /* save TOC pointer (not needed) */
@@ -43,17 +47,28 @@ setjmp:
std %r31,8(%r3)
li %r3,0 /* indicate success */
blr /* return */
+#if _CALL_ELF == 2
+ .size setjmp,.-setjmp
+#else
+ .size setjmp,.-.setjmp
+#endif
- .size .setjmp,.-...