Implement these using mux1 and extr.u. I'll update the userland versions
similarly. Actually, they should be inline on gcc.
This commit is contained in:
parent
0f153072be
commit
79b2d7690f
Notes:
svn2git
2020-12-20 02:59:44 +00:00
svn path=/head/; revision=84579
@ -39,9 +39,9 @@
|
||||
*
|
||||
* Argument is an unsigned 2-byte integer (u_int16_t).
|
||||
*/
|
||||
ENTRY(NAME, 1) /* in0 = 0x0123 */
|
||||
extr.u ret0=in0,8,8 /* ret0 = 0x 01 */
|
||||
;;
|
||||
dep ret0=ret0,in0,8,8 /* ret0 = 0x2301 */
|
||||
ENTRY(NAME, 1)
|
||||
mux1 r16=in0,@rev
|
||||
;;
|
||||
extr.u r8=r16,48,16
|
||||
br.ret.sptk.few rp
|
||||
END(NAME)
|
||||
|
@ -39,16 +39,9 @@
|
||||
*
|
||||
* Argument is an unsigned 4-byte integer (u_int32_t).
|
||||
*/
|
||||
ENTRY(NAME, 1) /* in0 = 0x01234567 */
|
||||
extr.u r16=in0,0,8 /* r16 = 0x 67 */
|
||||
extr.u r17=in0,8,8 /* r17 = 0x 45 */
|
||||
extr.u r18=in0,16,8 /* r18 = 0x 23 */
|
||||
extr.u ret0=in0,24,8 /* ret0 = 0x 01 */
|
||||
ENTRY(NAME, 1)
|
||||
mux1 r16=in0,@rev
|
||||
;;
|
||||
dep ret0=ret0,r16,24,8 /* ret0 = 0x67 01 */
|
||||
;;
|
||||
dep ret0=ret0,r17,16,8 /* ret0 = 0x6745 01 */
|
||||
;;
|
||||
dep ret0=ret0,r16,8,8 /* ret0 = 0x67452301 */
|
||||
extr.u r8=r16,32,32
|
||||
br.ret.sptk.few rp
|
||||
END(NAME)
|
||||
|
Loading…
Reference in New Issue
Block a user