/*
* This is where we do the hideous X86 instruction parsing among other things
* We can parse out the instruction prefixes, as well as decode the operands
- *
- * Before we begin I'd just like to say a few words to those that made this possible...
- *
- *
- * _____
- * || ||
- * |\___/|
- * | |
- * | |
- * | |
- * | |
- * | |
- * | |
- * _____|<--->|_____
- * ___/ | | \
- * / | | | | \
- * | | | | | |
- * | | | | | |
- * | | |
- * | | |
- * | Fuck You Intel! /
- * | /
- * \ /
- * \ /
- * | |
- * | |
- *
- * That is all.
- *
+
*/
-static inline addr_t get_rip_linear(struct guest_info * info, addr_t rip, addr_t cs_base) {
+static inline addr_t get_addr_linear(struct guest_info * info, addr_t addr, addr_t seg_base) {
switch (info->cpu_mode) {
case REAL:
- return rip + (cs_base << 4);
+ return addr + (seg_base << 4);
break;
case PROTECTED:
case PROTECTED_PG:
- return rip + cs_base;
+ return addr + seg_base;
break;
default:
return 0;