- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Why is it that mux1 only has five possible permutations, whereas mux2 has any possible permutation?
I was searching "the entire Internet" for the answer, and I couldn't find it. Maybe an Intel Itanium engineer can brief me on this one?
Thanks,
Adam
Link Copied
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Why is it that mux1 only has five possible permutations, whereas mux2 has any possible permutation?
I was searching "the entire Internet" for the answer, and I couldn't find it. Maybe an Intel Itanium engineer can brief me on this one?
Thanks,
Adam
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Why is it that mux1 only has five possible permutations, whereas mux2 has any possible permutation?
I was searching "the entire Internet" for the answer, and I couldn't find it. Maybe an Intel Itanium engineer can brief me on this one?
Thanks,
Adam
Couldn't you use an imm24 field?
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Couldn't you use an imm24 field?
There isn't enough space in a 41-bit instruction for a 24-bit field.
For mux1/mux2, you need 6-bits for QP, 14-bits for r1 and r2, 13-bits for opcode and extensions. That leaves the 8-bits for the permutations.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
There isn't enough space in a 41-bit instruction for a 24-bit field.
For mux1/mux2, you need 6-bits for QP, 14-bits for r1 and r2, 13-bits for opcode and extensions. That leaves the 8-bits for the permutations.
So then how do some instructions (such as movl) take imm64 fields?
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
So then how do some instructions (such as movl) take imm64 fields?
Those instructions are special cases where you need to encode an address in the instruction. For the sake of simplicity, you'd like to severely limit those uses.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Those instructions are special cases where you need to encode an address in the instruction. For the sake of simplicity, you'd like to severely limit those uses.
What about:
(qp)movl r3=imm64
(qp)mux1 r1=r2, r3
Or is mux1 like how it is so that only one instruction is needed?
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
What about:
(qp)movl r3=imm64
(qp)mux1 r1=r2, r3
Or is mux1 like how it is so that only one instruction is needed?
movl needs to have an imm64 field. mux1 doesn't really need to. If mux1 did, it would make instruction decode much more difficult.
![](/skins/images/D3C0B914909A6564BBB97F4AD1ED1973/responsive_peak/images/icon_anonymous_message.png)
- Subscribe to RSS Feed
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Bookmark
- Subscribe
- Printer Friendly Page