Displaying 5 results from an estimated 5 matches for "vfpthumb2postencod".
Did you mean:
vfpthumb2postencoder
2011 Aug 30
2
[LLVMdev] ARMCodeEmitter.cpp JIT support very broken (2.9 and svn)
...>
> This is the intended behavior. The some post-encoder hooks need to clear bits as well as set them. If you're seeing incorrect output from the post-encoder hook, it's because the hook itself has a bug.
Ah, ok. So it looks like the stubs in ARMCodeEmitter.cpp such as
unsigned VFPThumb2PostEncoder(const MachineInstr&MI, unsigned Val) const { return 0; }
should instead be
unsigned VFPThumb2PostEncoder(const MachineInstr&MI, unsigned Val) const { return Val; }
>> This looks like it would affect all targets, except apparently only ARM uses this feature.
>>
>> 2)...
2011 Aug 30
2
[LLVMdev] ARMCodeEmitter.cpp JIT support very broken (2.9 and svn)
...ry value when they try to implement 'PostEncoderMethod' support , for example, from ARMGenCodeEmitter.inc:
case ARM::VLDRD:
case ARM::VSTRD: {
// op: p
op = getMachineOpValue(MI, MI.getOperand(3));
Value |= (op & 15U) << 28;
// etc ...
Value = VFPThumb2PostEncoder(MI, Value); // <--- overwrites Value!
break;
}
The bug here is that in utils/TableGen/CodeEmitterGen.cpp, line 196:
Case += " Value = " + PostEmitter + "(MI, Value);\n";
should be
Case += " Value |= " + PostEmitter + "(MI, Value...
2011 Aug 30
0
[LLVMdev] ARMCodeEmitter.cpp JIT support very broken (2.9 and svn)
...nt 'PostEncoderMethod' support , for example, from ARMGenCodeEmitter.inc:
>
> case ARM::VLDRD:
> case ARM::VSTRD: {
> // op: p
> op = getMachineOpValue(MI, MI.getOperand(3));
> Value |= (op & 15U) << 28;
> // etc ...
> Value = VFPThumb2PostEncoder(MI, Value); // <--- overwrites Value!
> break;
> }
>
> The bug here is that in utils/TableGen/CodeEmitterGen.cpp, line 196:
> Case += " Value = " + PostEmitter + "(MI, Value);\n";
> should be
> Case += " Value |= "...
2011 Aug 30
0
[LLVMdev] ARMCodeEmitter.cpp JIT support very broken (2.9 and svn)
...t;
>
> This is the intended behavior. The some post-encoder hooks need to clear bits as well as set them. If you're seeing incorrect output from the post-encoder hook, it's because the hook itself has a bug.
Ah, ok. So it looks like the stubs in ARMCodeEmitter.cpp such as
unsigned VFPThumb2PostEncoder(const MachineInstr&MI, unsigned Val) const { return 0; }
should instead be
unsigned VFPThumb2PostEncoder(const MachineInstr&MI, unsigned Val) const { return Val; }
>> This looks like it would affect all targets, except apparently only ARM uses this feature.
>>
>> 2) AR...
2011 Aug 30
5
[LLVMdev] ARMCodeEmitter.cpp JIT support very broken (2.9 and svn)
...is is the intended behavior. The some post-encoder hooks need to clear bits as well as set them. If you're seeing incorrect output from the post-encoder hook, it's because the hook itself has a bug.
>
> Ah, ok. So it looks like the stubs in ARMCodeEmitter.cpp such as
> unsigned VFPThumb2PostEncoder(const MachineInstr&MI, unsigned Val) const { return 0; }
> should instead be
> unsigned VFPThumb2PostEncoder(const MachineInstr&MI, unsigned Val) const { return Val; }
>
>
>>> This looks like it would affect all targets, except apparently only ARM uses this feature....