 Chromium Code Reviews
 Chromium Code Reviews Issue 2821014:
  Add movw and movt support for ARMv7.  This includes some code from...  (Closed) 
  Base URL: http://v8.googlecode.com/svn/branches/bleeding_edge/
    
  
    Issue 2821014:
  Add movw and movt support for ARMv7.  This includes some code from...  (Closed) 
  Base URL: http://v8.googlecode.com/svn/branches/bleeding_edge/| Index: test/cctest/test-disasm-arm.cc | 
| =================================================================== | 
| --- test/cctest/test-disasm-arm.cc (revision 4906) | 
| +++ test/cctest/test-disasm-arm.cc (working copy) | 
| @@ -269,6 +269,28 @@ | 
| COMPARE(mvn(r6, Operand(-1), LeaveCC, ne), | 
| "13a06000 movne r6, #0"); | 
| + // mov -> movw. | 
| + if (CpuFeatures::IsSupported(ARMv7)) { | 
| + COMPARE(mov(r5, Operand(0x01234), LeaveCC, ne), | 
| + "13015234 movwne r5, #4660"); | 
| + // We only disassemble one instruction so the eor instruction is not here. | 
| + COMPARE(eor(r5, r4, Operand(0x1234), LeaveCC, ne), | 
| + "1301c234 movwne ip, #4660"); | 
| + // Movw can't do setcc so we don't get that here. Mov immediate with setcc | 
| + // is pretty strange anyway. | 
| + COMPARE(mov(r5, Operand(0x01234), SetCC, ne), | 
| + "159fc000 ldrne ip, [pc, #+0]"); | 
| + // We only disassemble one instruction so the eor instruction is not here. | 
| + // The eor does the setcc so we get a movw here. | 
| + COMPARE(eor(r5, r4, Operand(0x1234), SetCC, ne), | 
| + "1301c234 movwne ip, #4660"); | 
| + } | 
| + | 
| + // Eor doesn't have an eor-negative variant, but we can do an mvn followed by | 
| + // an eor to get the same effect. | 
| + COMPARE(eor(r5, r4, Operand(0xffffff34), SetCC, ne), | 
| + "13e0c0cb mvnne ip, #203"); | 
| + | 
| 
Søren Thygesen Gjesse
2010/06/21 21:39:26
Missing movt test?
 | 
| // and <-> bic. | 
| COMPARE(and_(r3, r5, Operand(0xfc03ffff)), | 
| "e3c537ff bic r3, r5, #66846720"); |